Solr 简介

维基百科的简介:

Solr(读作“solar”)是Apache Lucene项目的开源企业搜索平台。其主要功能包括全文检索、命中标示、分面搜索、动态聚类、数据库集成,以及富文本(如Word、PDF)的处理。Solr是高度可扩展的,并提供了分布式搜索和索引复制。Solr是最流行的企业级搜索引擎,Solr 4还增加了NoSQL支持。
Solr是用Java编写、运行在Servlet容器(如Apache Tomcat或Jetty)的一个独立的全文搜索服务器。 Solr采用了Lucene Java搜索库为核心的全文索引和搜索,并具有类似REST的HTTP/XML和JSON的API。 Solr强大的外部配置功能使得无需进行Java编码,便可对其进行调整以适应多种类型的应用程序。Solr有一个插件架构,以支持更多的高级定制。
因为2010年Apache Lucene和Apache Solr项目合并,两个项目是由同一个Apache软件基金会开发团队制作实现的。提到技术或产品时,Lucene/Solr或Solr/Lucene是一样的。

其实说白了,Solr跟数据库服务器真的很像。

以下是Solr可能集成到应用服务器的示例(来自官网)

在上述情况下,Solr沿其他服务器应用程序运行。 例如,在线商店应用将提供用户界面,购物车以及为最终用户购买的方式; 而库存管理应用程序将允许商店员工编辑产品信息。 产品元数据将保存在某种数据库以及Solr中。

Solr可以轻松添加通过以下步骤在线商店中搜索的功能:

  1. 定义schema: 该schema告诉Solr关于它将被索引的文档的内容(原文易理解: The schema tells Solr about the contents of documents it will be indexing.)。 在在线商店示例中,模式将定义产品名称,描述,价格,制造商等的字段。 Solr的模式是强大而灵活的,可以让您根据自己的应用定制Solr的行为。 有关详细信息,请参阅文档,字段和schema设计。
  2. 部署Solr。
  3. 您的用户将搜索的Feed Solr文档。
  4. 在您的应用程序中公开搜索功能。

安装 Solr

Java环境

Windows和Linux 都需要先安装Java环境,自行google、baidu.

windows10 安装 Solr

Solr6.6.0官方下载地址

Windows10 用户下载solr-6.6.0.zip版本,然后解压到想放置solr的文件夹。

解压完就已经好了。

centos7 安装 Solr

通过wget命令下载solr-6.6.0.tgz版本的压缩包:

1
2
cd /home
wget https://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/6.6.0/solr-6.6.0.tgz

下载完创建文件夹并压缩:

1
2
cd /home
tar zxf solr-6.6.0.tgz

解压完就可以了。

运行 Solr

windows10 运行Solr 服务器

命令行里cd到solr6.6.0当前目录下,输入bin\solr.cmd start,服务器就运行了。

windwos

centos7 运行Solr 服务器

命令行里cd到solr6.6.0当前目录下,输入bin/solr start(如果是root用户需要后面家 -force 命令),服务器就运行了。

Solr 脚本选项

下面只展示centos7.2的命令(windows10很大差别会说明)

查看solr 命令

1
bin/solr -help

运行/停止在不同的端口,默认端口是8983

1
2
bin/solr start -p 8984
bin/solr stop -p 8983

windows10 停止可能后面加-all。

捆绑core列子来启动服务器

1
bin/solr -e techproducts

查看Solr状态

1
bin/solr status

浏览器中输入http://localhost:8983/solr/来查看web管理界面。

wenHome

创建一个core

1
bin/solr create -c <name>

查看帮助同样

1
bin/solr create -help

Solr上传文档
centos7环境下post提交,gettingstarted 换成想要上传的core的名字

1
bin/post -c gettingstarted example/exampledocs/*.xml

window环境下的post提交,gettingstarted 换成想要上传的core的名字

1
java -Dc=gettingstarted -jar example/exampledocs/post.jar .\example\exampledocs\*.xml

下面是我的截图:
windows截图

现在上传完文档就有索引文档了,可以通过GET请求来访问,会返回xml文档。

1
http://localhost:8983/solr/gettingstarted/select?q=video

gettingstarted替换成自己的core名字。

进一步介绍 Solr配置

这部分主要介绍主目录和其它的配置文件。

Solr有两种模式

该示例显示了Solr的主目录的关键目录。

独立模式(就是单独solr服务器)

1
2
3
4
5
6
7
8
<solr-home-directory>/(在solr-6.6.0/server/solr/)
  solr.xml
  core_name1/
  core.properties
  conf/
  solrconfig.xml
  managed-schema
  data/

SolrCloud模式(分布式,集群)

1
2
3
4
5
<solr-home-directory>/(在solr-6.6.0/server/solr/)
  solr.xml
  core_name1/
  core.properties
  data/

你可能见到了其它的目录,但是你需要知道的主要目录是:

  • solr.xml : 是solr服务器实例的配置文件。
  • 对于每个solr core:
    • core.properties: 定义每个核心的特定属性,如其名称,核心所属的集合,模式的位置以及其他参数。
    • solrconfig.xml :控制高级别的行为。 例如,您可以指定的data目录的备用位置。
    • managed-schema(或schema.xml) : 描述了您要求Solr索引的文档。 schema将文档定义为字段的集合。 您可以自定义字段类型和字段。 字段类型定义很强大,包括有关Solr如何处理传入字段值和查询值的信息。
    • data/ : 该目录包含低级索引文件。

请注意
SolrCloud示例不包含每个Solr Core的conf目录(因此没有solrconfig.xml或Schema文件)。 这是因为通常在conf目录中找到的配置文件存储在ZooKeeper中,以便它们可以跨集群传播。

Solr 脚本详细介绍

以下全部centos7下的命令,Windows10的差异不大。

启动/停止Solr

启动/重新启动Solr

1
2
3
4
bin/solr start [options]
bin/solr start -help
bin/solr restart [options]
bin/solr restart -help

bin / solr脚本提供了许多选项,允许您以常用方式定制服务器,例如更改侦听端口。 然而,大多数默认值对于大多数Solr安装是足够的,特别是刚开始使用时。

可选参数(这里直接附上官方文档)
参数1
参数2
参数3
参数4
参数5
参数6

设置Java系统属性
bin / solr脚本将以-D开头的任何其他参数传递给JVM,这允许您设置任意的Java系统属性。

1
bin/solr start -Dsolr.autoSoftCommit.maxTime=3000

SolrCloud模式

1
2
bin/solr start -c
bin/solr start -cloud

-c 和- cloud一样。
如果指定ZooKeeper连接字符串,例如-z 192.168.1.4:2181,则Solr将连接到ZooKeeper并加入集群。
如果在Cloud模式下启动Solr时不指定-z选项,则Solr将启动一个嵌入式的ZooKeeper服务器,监听Solr端口+ 1000,即,如果Solr在端口8983上运行,则嵌入的ZooKeeper将监听 9983。

用示例启动Solr

示例配置允许您使用镜像,您希望使用Solr完成的配置进行快速入门。

1
bin/solr start -e <name>

提供以下示例:

  • cloud :此示例在单个机器上启动1-4节点SolrCloud群集。选择时,交互式会话将开始引导您选择要使用的初始配置集,示例集群的节点数,要使用的端口以及要创建的集合的名称。使用此示例时,可以从$ SOLR_HOME / server / solr / configsets中找到的任何可用配置中进行选择。
  • techproducts :此示例以独立模式启动Solr,并为包含在$ SOLR_HOME / example / exampledocs目录中的示例文档设计的模式启动。所使用的配置集可以在$ SOLR_HOME / server / solr / configsets / sample_techproducts_configs中找到。
  • dih:该示例以独立模式启动DataImportHandler(DIH)启用,并为DIH支持的不同类型的数据预先配置了几个示例dataconfig.xml文件(例如数据库内容,电子邮件,RSS源等) 。所使用的配置集定制为DIH,并在$ SOLR_HOME / example / example-DIH / solr / conf中找到。有关DIH的更多信息,请参阅使用数据导入处理程序上传结构化数据存储数据一节。
  • schemaless:此示例使用托管模式在独立模式下启动Solr,如SolrConfig中的“模式工厂定义”一节所述,并提供了非常小的预定义模式。 Solr将以这种配置运行在Schemaless模式中,Solr将立即在架构中创建字段,并且将猜测在传入文档中使用的字段类型。所使用的配置集可以在$ SOLR_HOME / server / solr / configsets / data_driven_schema_configs中找到。

停止Solr

停止正在运行的Solr服务器

1
2
bin/solr stop [options]
bin/solr stop -help

可选参数

参数7

Solr系统信息

Solr版本

1
bin/solr version

Solr状态

1
bin/solr status

5.2.3 Solr检查

1
2
bin/solr healthcheck [options]
bin/solr healthcheck -help

可选参数
参数8

Collections and Cores(集合和核心)

创建Collections and Cores

1
2
bin/solr create [options]
bin/solr create -help

可选参数

参数9
参数10

删除

1
2
bin/solr delete [options]
bin/solr delete -help

可选参数

参数11

完结。