Apache Solr是一个功能强大的搜索服务器,它支持REST风格API。Solr是基于Lucene的,Lucene 支持强大的匹配能力,如短语,通配符,连接,分组和更多不同的数据类型。它使用 Apache Zookeeper特别针对高流量进行优化。
Apache Solr支持不同格式,包括各种数据库,PDF文件,XML文件,CSV文件等等。
Apache Solr提供各式各样的功能,我们列出了部分最主要的功能。
先进的全文搜索功能。
XML,JSON和HTTP - 基于开放接口标准。
高度可扩展和容错。
同时支持模式和无模式配置。
分页搜索和过滤。
支持像英语,德语,中国,日本,法国和许多主要语言
丰富的文档分析。
Solr 是一个独立的企业级搜索应用服务器,它对外提供类似于 Web-service 的 API 接口。用户可以通过 http请求,向搜索引擎服务器提交一定格式的 XML 文件,生成索引;也可以通过 Http Get 操作提出查找请求,并得到XML 格式的返回结果。
2.1 JDK安装
在配置启动solr之前需要先安装jdk以及配置环境变量
2.2 软件下载
下载地址:
http://mirror.bit.edu.cn/apache/lucene/solr/5.5.4/
本次使用的是Solr5.5版本;
2.3 Windows下启动
下载解压后,
从dos命令行进入Solr安装目录下的bin目录,输入如下命令
solr start -e cloud –noprompt
或者
solr的启动、停止、查看命令:
看到打印如下信息,表示已经启动成功
启动成功后,访问http://localhost:8983/solr/
这将启动下的默认端口8983 Solr的服务器。
2.4 文件目录说明
Solr的文件夹
bin文件夹中包含用来启动和停止服务器的脚本。
example 文件夹包含几个示例文件。我们将使用其中的一种,以说明Solr如何索引数据。
server 文件夹包含logs 文件夹,所有的Solr的日志都写入该文件夹。这将有助于索引过程来检查任何错误日志。在sever文件夹下的Solr文件夹包含不同的集合或核心(core/collection)。对于各集合或核心的配置和数据都存储在相应的集合或核心文件夹。
Apache Solr带有一个内置的Jetty服务器。
3.1 配置核心
当Solr的服务器在独立模式下启动的配置称为核心,当它在SolrCloud模式启动的配置称为集合。首先,我们需要创建一个核心的索引数据。
3.1.1 命令配置
Solr的创建命令有以下选项:
solr create -c solr_test -d basic_configs
现在我们导航到以下网址,我们可以看到solr_test核心被填充在核心选择器上。还可以看到核心的统计信息:
除了通过命令配置之外,也可以通过以下界面配置:
3.1.2 界面配置
进入solr\server\solr目录下,创建自定义核心名称目录,如:solr_java
1、 创建data索引数据空目录
2、 创建conf配置文件目录(注:将solr\server\solr\configsets\basic_configs中的基础配置文件拷贝到conf中);
3.2 配置数据
现在使用solr自带的book.csv文件进行索引创建,solr\example\exampledocs\book.csv;
现在,我们定位到该文件夹 server\solr目录。找到自己创建的核心solr_test 的文件夹,子文件夹conf和data分别拥有核心的配置和索引的数据。
现在编辑\server\solr\solr_test\conf \managed-schema文件,设置唯一元素后添加以下内容。
<uniqueKey>id</uniqueKey>
<field name="cat" type="text_general" indexed="true" stored="true"/>
<field name="name" type="text_general" indexed="true" stored="true"/>
<field name="price" type="tdouble" indexed="true" stored="true"/>
<field name="inStock" type="boolean" indexed="true" stored="true"/>
<field name="author" type="text_general" indexed="true" stored="true"/>
我们已经设置了属性索引为true。这指定字段用于索引和记录可以使用索引进行检索。该值设置为false将只存储领域,但不能进行查询。
另外请注意另一个属性stored并将其设置为true。这指定字段被存储,并且可以在输出被返回。将此字段设置为false将使字段唯一索引,并且不能在输出进行检索。
我们已经分配给存在于此处的“books.csv”文件中的字段的类型。在CSV文件“ID”第一场由索引Schema.xml文件的唯一键自动元素的照顾。如果你注意,我们已经略过字段series_t,sequence_i和genre_s未做任何条目。但是,当我们执行索引时,所有这些字段都被索引且没有任何问题
重启solr服务,我们需要通过命令行发出从bin目录下面的命令。
solr stop -all
服务器将停止现在。现在启动服务器问题从bin目录中通过命令行运行以下命令。
solr start
3.3 索引数据
Apache Solr带有一个叫做SimplePostTool独立的Java程序。这个程序被打包成JAR,在安装目录下 example\exampledocs可看到。
现在,我们在命令行定位到example\exampledocs文件夹,然后键入以下命令。你会看到一堆选项,使用的工具。
Java -jar post.jar –h
在一般的使用格式如下用途:
正如我们前面所说,我们将索引“books.csv”文件中的数据。我们将导航到solr\example\exampledocs在命令提示符并发出以下命令。
java -Dtype=text/csv -Durl=http://localhost:8983/solr/solr_test/update -jar post.jar books.csv
这里使用的SystemProperties是:
现在我们导航到以下网址并选择核心solr_test。
http://localhost:8983/solr
Solr的核心数据
就拿在统计部分仔细一看,该文档参数将显示索引的行数。
3.4 访问索引的文档
Apache Solr提供了一种基于REST API来访问的数据,并还提供了不同的参数,以检索数据。
3.4.1 按名称搜索
我们将用它的名字检索书的细节。要做到这一点,我们将使用下面的语法。URL中的参数“Q”是查询事件。
打开浏览器下列URL。
http://localhost:8983/solr/solr_test/select?q=name:”A Clash of Kings”
输出将在下面,如图所示。
3.4.2 按首字母搜索
现在我们将告诉你如何搜索记录,如果我们只知道起始字母或单词,不记得完整的标题。我们可以用下面的查询检索结果。
http://localhost:8983/solr/solr_test/select?q=name:”A”
输出将列出所有的书籍字母A相关数据
3.4.3 按通配符搜索
Solr的支持通配符搜索。我们将下面的展示如何检索所有书名包含“of”的书。
http://localhost:8983/solr/solr_test/select?q=name:”*of”
3.4.4 搜索使用的条件
Solr的支持条件的搜索。我们可以设置条件,我们的查询提供了“FQ”参数。在下面我们将告诉你如何查询价格低于¥6的书。
http://localhost:8983/solr/solr_test/select?q=*&fq=price:[0 TO 6]
输出将只列出这是低于$ 6的书籍。
有不同的客户端API的可用来连接到Solr的服务器。我们列出了一些广泛使用的Solr客户端API的。
SolRuby – To connect from Ruby
SolPHP – To connect from PHP
PySolr – To connect from Python
SolPerl – To connect from Perl
SolrJ – To connect from Java
SolrSharp – To connect from C#
此外,Solr还提供了JavaScript可以直接使用的基于REST的API。
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/vtopqx/article/details/73223715
内容来源于网络,如有侵权,请联系作者删除!