Solr安装配置

x33g5p2x  于2021-12-20 转载在 其他  
字(4.3k)|赞(0)|评价(0)|浏览(709)

1 概述

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 安装配置

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的启动、停止、查看命令:

  1. 启动:bin\solr.cmd start
  2. 停止:bin\solr.cmd stop 或bin\solr.cmd stop -all
  3. 查看:bin\solr.cmd status
    或者
    solr stop -all
    服务器将停止现在。现在启动服务器问题从bin目录中通过命令行运行以下命令。
    solr start

看到打印如下信息,表示已经启动成功

启动成功后,访问http://localhost:8983/solr/
这将启动下的默认端口8983 Solr的服务器。

2.4 文件目录说明
Solr的文件夹
bin文件夹中包含用来启动和停止服务器的脚本。
example 文件夹包含几个示例文件。我们将使用其中的一种,以说明Solr如何索引数据。
server 文件夹包含logs 文件夹,所有的Solr的日志都写入该文件夹。这将有助于索引过程来检查任何错误日志。在sever文件夹下的Solr文件夹包含不同的集合或核心(core/collection)。对于各集合或核心的配置和数据都存储在相应的集合或核心文件夹。
Apache Solr带有一个内置的Jetty服务器。

3 测试

3.1 配置核心
当Solr的服务器在独立模式下启动的配置称为核心,当它在SolrCloud模式启动的配置称为集合。首先,我们需要创建一个核心的索引数据。

3.1.1 命令配置
Solr的创建命令有以下选项:

  1. -c -要创建的核心或集合的名称(必需)。
  2. -d -配置目录,在SolrCloud模式非常有用。
  3. -n -配置名称。这将默认为核心或集合的名称。
  4. -p -本地Solr的实例的端口发送create命令; 默认脚本试图通过寻找运行Solr的实例来检测端口。
  5. -s -Number of shards to split a collection into, default is 1.
  6. -rf -集合中的每个文件的份数。默认值是1。
    在这个例子中,我们将使用的核心名称和配置目录-d参数-c参数。对于所有其它参数我们使用默认设置。
    现在在命令窗口浏览 solr\bin文件夹,并发出以下命令。

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是:

  1. -dtype - 数据文件的类型。
  2. -Durl - 即:核心的地址。
    文件“books.csv”现在将索引和命令提示符将显示以下输出。

现在我们导航到以下网址并选择核心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的书籍。

4 客户端介绍

有不同的客户端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。

下一篇:Solr集群配置

相关文章