solr 快速入门
Contents
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可以轻松添加通过以下步骤在线商店中搜索的功能:
- 定义schema: 该schema告诉Solr关于它将被索引的文档的内容(原文易理解: The schema tells Solr about the contents of documents it will be indexing.)。 在在线商店示例中,模式将定义产品名称,描述,价格,制造商等的字段。 Solr的模式是强大而灵活的,可以让您根据自己的应用定制Solr的行为。 有关详细信息,请参阅文档,字段和schema设计。
- 部署Solr。
- 您的用户将搜索的Feed Solr文档。
- 在您的应用程序中公开搜索功能。
安装 Solr
Java环境
Windows和Linux 都需要先安装Java环境,自行google、baidu.
windows10 安装 Solr
Windows10 用户下载solr-6.6.0.zip版本,然后解压到想放置solr的文件夹。
解压完就已经好了。
centos7 安装 Solr
通过wget命令下载solr-6.6.0.tgz版本的压缩包:
1 | cd /home |
下载完创建文件夹并压缩:
1 | cd /home |
解压完就可以了。
运行 Solr
windows10 运行Solr 服务器
命令行里cd到solr6.6.0当前目录下,输入bin\solr.cmd start,服务器就运行了。
centos7 运行Solr 服务器
命令行里cd到solr6.6.0当前目录下,输入bin/solr start(如果是root用户需要后面家 -force 命令),服务器就运行了。
Solr 脚本选项
下面只展示centos7.2的命令(windows10很大差别会说明)
查看solr 命令
1 | bin/solr -help |
运行/停止在不同的端口,默认端口是8983
1 | bin/solr start -p 8984 |
windows10 停止可能后面加-all。
捆绑core列子来启动服务器
1 | bin/solr -e techproducts |
查看Solr状态
1 | bin/solr status |
浏览器中输入http://localhost:8983/solr/来查看web管理界面。
创建一个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 |
下面是我的截图:
现在上传完文档就有索引文档了,可以通过GET请求来访问,会返回xml文档。
1 | http://localhost:8983/solr/gettingstarted/select?q=video |
gettingstarted替换成自己的core名字。
进一步介绍 Solr配置
这部分主要介绍主目录和其它的配置文件。
Solr有两种模式
该示例显示了Solr的主目录的关键目录。
独立模式(就是单独solr服务器)
1 | <solr-home-directory>/(在solr-6.6.0/server/solr/) |
SolrCloud模式(分布式,集群)
1 | <solr-home-directory>/(在solr-6.6.0/server/solr/) |
你可能见到了其它的目录,但是你需要知道的主要目录是:
- 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 | bin/solr start [options] |
bin / solr
脚本提供了许多选项,允许您以常用方式定制服务器,例如更改侦听端口。 然而,大多数默认值对于大多数Solr安装是足够的,特别是刚开始使用时。
可选参数(这里直接附上官方文档)
设置Java系统属性
bin / solr脚本将以-D开头的任何其他参数传递给JVM,这允许您设置任意的Java系统属性。
1 | bin/solr start -Dsolr.autoSoftCommit.maxTime=3000 |
SolrCloud模式
1 | bin/solr start -c |
-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 | bin/solr stop [options] |
可选参数
Solr系统信息
Solr版本
1 | bin/solr version |
Solr状态
1 | bin/solr status |
5.2.3 Solr检查
1 | bin/solr healthcheck [options] |
可选参数
Collections and Cores(集合和核心)
创建Collections and Cores
1 | bin/solr create [options] |
可选参数
删除
1 | bin/solr delete [options] |
可选参数
完结。