在多个应用系统中全部都需要使用全文搜索,如果每一个应用加入Lucene这样的话就太麻烦了。所以就可以创建一个独立的搜索服务,供所有应用使用。这时就可以使用开源的搜索服务系统Solr、Elasticsearch。
Solr介绍
Solr:基于Lucene的流行、高性能的开源企业级搜索平台。Lucene下的子项目。
官网链接: https://lucene.apache.org/solr
Solr用途
独立地提供全文搜索服务
Solr特性
1、独立的企业级搜索服务,基于http以类-REST API 对外提供服务
- 你可以通过http协议将文档以JSON/XML/CSV/binary格式发送给Solr进行索引。
- 你通过http GET 请求进行查询,可返回JSON/XML/CSV/binary格式的搜索结果。
2、近实时的索引能力
- 文档数据提交索引后,立马就可看到。
3、先进的全文检索能力
- 基于Lucene的强大搜索能力,支持任意数据类型的短语、通配、连接、分组等等查询
4、综合的管理界面
- Slor内建了综合的管理用户界面,让你方便的管理你的solr实例。
5、通过简单的配置方式来提供高灵活性、适用性。
6、高伸缩和容错能力
- 基于zookeeper,solr支持分布式、备份、再平衡,来提供高伸缩和容错能力**
7、插件体系架构,易扩展
- Solr发布了许多定义良好的扩展点,这使得插件很容易插入索引和查询时的过程中。
Solr应用架构
你的应用需要添加搜索能力,只需三步:
1、在solr中定义一个schema(模式),来告诉solr你要索引的文档document由哪些Field构成。
2、将需要让用户搜索的文档发送给solr
3、在你的应用中公开搜索功能。应用的搜索功能通过调用Solr的搜索API实现。
solr应用架构
Solr下载
Solr 版本:7.3.0
官网下载安装包: https://lucene.apache.org/solr/mirrors-solr-latest-redir.html
系统环境要求
JRE1.8
操作系统:Linux, MacOS/OS X, and Microsoft Windows
安装准备
Solr的安装很简单,只需解压到安装目录。但在安装之前针对你的使用环境:开发、测试、生产,需要进行一个评估,来决定:
是在独立的机器上部署单应用服务;
还是需要分布式集群。
特别是在生产环境部署时,需认真评估需要的服务规模。考量因素:
1、文档的数量结构
2、要存储的字段数量
3、用户数量
4、影响硬件规模的因素
- Lucene的严格限制:单个索引中的最大文档数:约2.14 billion documents(约21.4亿,2147483647)
实际中不可能在单个索引中达到这个文档数量级还运行良好,在到达这个数量之前早就会用分布式索引集群。如果在部署时,就能估计出将达到如此量级,就应该用solrCloud分布式集群方式安装。
安装
将安装包解压到安装目录即可。
- linux系统下解压命令:tar zxf solr-7.3.0.taz
-
windows直接解压即可
solr目录说明
独立服务器模式启动Solr
Linux启动:
- bin/solr start
如果出现以下信息:
WARNING: Starting Solr as the root user is a security risk and not considered best practice. Exiting.
Please consult the Reference Guide. To override this check, start with argument ‘-force’
输入:bin/solr start -force 启动
Windows启动:
- bin\solr.cmd start
加上 -p 参数 指定端口启动
默认端口:8983
查看solr是否运行的命令:
- bin/solr status(linux系统)
启停控制脚本支持的命令
启停脚本命令输入 solr.cmd start -help 了解详情
Solr 管理控制台介绍
solr 管理控制台Solr core(内核) 介绍
内核:是运行在Solr服务器中的具体 唯一命名 的、可管理和可配置的索引。
- 一台sole服务器可以托管一个或多个内核。
内核就是索引,那么为什么需要多个内核呢?
- 不同的文档拥有不同的模式(字段构成、索引、存储方式),如商品数据和新闻数据就有不同的字段构成以及不同的字段索引、存储方式。就需要分别用两个内核来索引、存储他们。
solr服务器内核内核的典型用途:区分不同模式的文档
创建内核
-
方式一:web管理控制台加载已存在的内核
web管理控制台创建内核 -
方式二:命令行创建有一个新的内核
命令行创建内核
-d 选项可选值有两个:
- _default 默认值,最少配置
- sample_techproducts_configs 示例的配置
分别创建一个内核
- windows:
solr.cmd create_core -c mycore
solr.cmd create_core -c techproducts -d sample_techproducts_configs
- linxu
./solr create_core -c mycore
./solr create_core -c techproducts -d sample_techproducts_configs
内核创建后的文件就在 solr-7.3.1/server/solr 目录下
web管理控制台内核菜单
内核菜单数据测试
1、在solr的example目录下有许多示例数据,可进行添加
用post命令添加:
- Linux/Mac
solr-7.3.0:$ bin/post -c techproducts example/exampledocs/*
- Windows
solr-7.3.0> java -jar -Dc=techproducts -Dauto example\exampledocs\post.jar example\exampledocs\*
2、搜索
solr搜索
返回值
3、提交文档
{
"id" : "2010-010154888",
"cat" : ["book","paperback"],
"name" : "I love solr",
"author" : "Mike",
"sequence_i" : 1,
"genre_s" : "IT",
"inStock" : true,
"price" : 130.50,
"pages_i" : 475
}
提交
网友评论