您的位置:首页 > 游戏 > 手游 > 河源网站搭建费用_找施工员在哪个网站上找_站长之家网站排行榜_十大搜索引擎排行榜

河源网站搭建费用_找施工员在哪个网站上找_站长之家网站排行榜_十大搜索引擎排行榜

2024/11/16 22:20:07 来源:https://blog.csdn.net/Aaaaaaatwl/article/details/142871318  浏览:    关键词:河源网站搭建费用_找施工员在哪个网站上找_站长之家网站排行榜_十大搜索引擎排行榜
河源网站搭建费用_找施工员在哪个网站上找_站长之家网站排行榜_十大搜索引擎排行榜

在这里插入图片描述

文章目录

    • Solr简单介绍
    • Solr 版本与 JDK版本 兼容情况
    • 安装与配置(Windows)
    • 安装与配置(Linux)
    • 应用案例(电商产品搜索系统)
    • 为什么要用Solr,不用数据库的模糊查询
    • Solr对比Elasticsearch

更多相关内容可查看

Solr官方文档:https://solr.apache.org/guide/solr/latest/index.html

Solr简单介绍

Apache Solr是一个跟Elasticsearch概念相同的一个并都基于Apache Lucene的开源搜索平台,旨在为企业和应用提供强大的搜索能力。它支持多种数据类型的搜索,并提供丰富的功能,如全文检索、快速搜索、分面搜索、高亮显示、地理搜索等。


Solr 版本与 JDK版本 兼容情况

  • Solr 6.x 和 7.x:
    兼容 JDK 8:从 Solr 6.0 开始,Solr 对 JDK 8 的支持变得更加稳定。Solr 6.x 及 7.x 版本通常是与 JDK 8 完全兼容的。 推荐的 JDK 版本:JDK 8 是这些版本推荐的运行环境。尽管它们也支持 JDK 7,但
    JDK 8 的支持更为广泛和稳定。
  • Solr 8.x:
    兼容 JDK 8 到 JDK 11:Solr 8.x 版本开始支持 JDK 8、JDK 9、JDK 10 和 JDK 11。具体来说: Solr 8.0 到 8.4 版本推荐使用 JDK 8 或 JDK 11。 但是,Solr 8.5 及以上版本对
    JDK 8 的支持逐渐减少,主要推荐使用 JDK 11。 注意:虽然 Solr 8.x 支持 JDK 8,但在 8.5 版本后,JDK
    8 的支持逐步被削弱。对于长时间支持(LTS)的版本,建议使用 JDK 11。
  • Solr 9.x:
    不再兼容 JDK 8:Solr 9.x 版本已经不再支持 JDK 8,只支持 JDK 11 或更高版本。Solr 9.0 和后续版本要求 JDK 11 或更高版本来运行。

安装与配置(Windows)

JDK8下载地址:https://archive.apache.org/dist/lucene/solr/4.10.3/

在这里插入图片描述

JDK11下载地址:https://solr.apache.org/downloads.html

在这里插入图片描述

下载完解压后的文件夹内容

在这里插入图片描述

cmd进入bin路径下输入,,如下

solr.cmd start

这里如果JDK报错,请先安装JDK8及以上

在这里插入图片描述

打开浏览器输入https://localhost:8983/solr

在这里插入图片描述
创建 code 核心并添加 conf 配置文件

在这里插入图片描述
这里因为缺失配置文件会报错,需要手动添加一下

在这里插入图片描述
创建后找到 server\solr\ 创建核心新建的文件夹,从 solr-7.7.2\example\example-DIH\solr\solr 中找到配置文件复制到新建文件夹

在这里插入图片描述

重启服务
在这里插入图片描述

成功示例

在这里插入图片描述
测试查询使用
在这里插入图片描述
成功示例
在这里插入图片描述

安装与配置(Linux)

安装Solr

  1. 下载Solr:

    wget https://archive.apache.org/dist/lucene/solr/8.10.1/solr-8.10.1.tgz
    
  2. 解压并进入目录:

    tar xzf solr-8.10.1.tgz
    cd solr-8.10.1
    
  3. 启动Solr:

    bin/solr start
    
  4. 验证安装:
    打开浏览器,访问http://localhost:8983/solr/,你应该能看到Solr的管理界面。

创建Solr核心

  1. 创建核心:

    bin/solr create -c mycore
    
  2. 配置核心:
    进入solr/mycore/conf目录,修改solrconfig.xmlschema.xml,配置字段类型和请求处理器。

配置schema.xml

schema.xml中定义文档的字段及其属性。例如:

<field name="id" type="string" indexed="true" stored="true" required="true"/>
<field name="title" type="text_general" indexed="true" stored="true"/>
<field name="content" type="text_general" indexed="true" stored="true"/>
<field name="author" type="string" indexed="true" stored="true"/>

数据导入与索引

创建一个名为data.json的文件,内容如下:

[{"id": "1","title": "Solr Basics","content": "Apache Solr is a powerful search platform.","author": "John Doe"},{"id": "2","title": "Understanding Lucene","content": "Lucene is the underlying library used by Solr.","author": "Jane Doe"}
]

使用以下命令将数据导入Solr:

curl -X POST -H 'Content-Type: application/json' --data-binary @data.json http://localhost:8983/solr/mycore/update?commit=true

基本查询

在Solr中,查询可以通过HTTP请求进行。基本查询的URL格式为:

http://localhost:8983/solr/mycore/select?q=关键词

例如,要查询标题中包含“Solr”的文档,可以使用:

http://localhost:8983/solr/mycore/select?q=title:Solr

高级查询

Solr支持多种查询方式,包括布尔查询、范围查询等。例如:

  • 布尔查询:
http://localhost:8983/solr/mycore/select?q=title:(Solr OR Lucene)
  • 范围查询:
http://localhost:8983/solr/mycore/select?q=author:("John Doe" TO "Jane Doe")

分面搜索

分面搜索允许用户在搜索结果中按特定字段进行筛选。例如,获取作者的分面信息:

http://localhost:8983/solr/mycore/select?q=*:*&facet=true&facet.field=author

高亮显示

为了在搜索结果中突出显示关键词,可以使用高亮功能:

http://localhost:8983/solr/mycore/select?q=Solr&hl=true&hl.fl=content

应用案例(电商产品搜索系统)

设计数据模型

  • id:产品ID
  • name:产品名称
  • description:产品描述
  • price:产品价格
  • category:产品类别

使用命令创建电商产品核心:

bin/solr create -c ecommerce

schema.xml中添加产品字段:

<field name="id" type="string" indexed="true" stored="true" required="true"/>
<field name="name" type="text_general" indexed="true" stored="true"/>
<field name="description" type="text_general" indexed="true" stored="true"/>
<field name="price" type="float" indexed="true" stored="true"/>
<field name="category" type="string" indexed="true" stored="true"/>

创建一个JSON文件products.json

[{"id": "1","name": "Laptop","description": "A high-performance laptop.","price": 999.99,"category": "Electronics"},{"id": "2","name": "Smartphone","description": "A smartphone with excellent features.","price": 499.99,"category": "Electronics"}
]

使用以下命令导入数据:

curl -X POST -H 'Content-Type: application/json' --data-binary @products.json http://localhost:8983/solr/ecommerce/update?commit=true

用户可以通过以下方式搜索产品:

http://localhost:8983/solr/ecommerce/select?q=name:Laptop

为了提高用户体验,可以添加分面搜索功能,允许用户按类别筛选产品:

http://localhost:8983/solr/ecommerce/select?q=*:*&facet=true&facet.field=category

为什么要用Solr,不用数据库的模糊查询

1 .其实正如上面solr的介绍中所说的那样,solr本身也可以看成数据库,(no sql类型),但它比数据库搜索速度更快,所以在项目中我们一般把搜搜的部分交给solr,就像我们在京东首页所看到的商品信息,并不是来自数据库,而是来源于solr的索引库

2.数据库本身不能实现分词效果,而只能使用模糊查询,但是模糊查询非常低效,查询速度比较慢,由于在实际生活中,一般搜索是用的比较多的,这样数据库压力自然就很大,所以我们就让供专业的solr来做搜索功能


Solr对比Elasticsearch

可能大家对于搜索引擎更熟悉于Elasticsearch,以下可以在不同的场景下来考虑选择哪一种

1. 架构和设计

  • Solr

    • 基于Apache Lucene:Solr是一个独立的搜索平台,使用Java编写,依赖于Lucene库进行全文检索。
    • 配置和管理:Solr的配置通常通过XML文件进行,支持复杂的查询、分面搜索和聚合。
    • 传统应用:Solr更适合需要复杂搜索功能的企业应用,特别是在基于数据的报表和分析方面。
  • Elasticsearch

    • 分布式搜索引擎:Elasticsearch也是基于Lucene,但它是分布式的,支持多节点集群。
    • RESTful API:提供了简单易用的RESTful API,便于与其他服务集成,使用JSON格式进行数据交互。
    • 实时搜索:Elasticsearch支持实时数据索引和查询,更适合需要快速响应的应用,如日志分析和监控。

2. 功能和特性

  • Solr

    • 丰富的查询能力:支持复杂的查询,包括高亮、分面、地理位置搜索等。
    • 分面搜索:提供强大的分面功能,适合电商网站和内容管理系统。
    • 数据导入:支持通过数据导入工具(DIH)从多种数据源(如数据库)进行索引。
  • Elasticsearch

    • 聚合查询:支持多种类型的聚合,可以实现复杂的统计分析。
    • 数据类型支持:更好的支持文档数据结构,适合半结构化数据(如JSON)。
    • 全文检索:对文本数据提供更强的全文检索能力,包括多种语言的分析支持。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com