目录
Apache Solr介绍、下载及其安装?Solr、Elastic Search比较?Solr的工作方式?
Apache Solr介绍、下载及其安装
Apache Solr简介
Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-Service的API接口
Solr具有高度的可靠性、可伸缩性和容错能力。提供分布式索引、复制和负载均衡查询、自动故障转移和恢复、集中式配置等。Solr为许多世界上的互联网站点提供搜索和导航功能
特点
(1)Solr是一个高性能,采用Java开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言
(2)实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎
Lucene
Lucene是Apache软件基金会是jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎
Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。
(1)Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和提供
(2)Lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻
(3)在Java开发环境里Lucene是一个成熟的免费开源工具
(4)Lucene是当前最受欢迎的免费Java信息检索程序库。虽然与搜索引擎有关,但不应该将信息检索程序库与搜索引擎相混淆
优缺点
优点
(1)Solr有一个更大、更成熟的用户、开发和贡献者社区
(2)支持添加多种格式的索引。HTML、PDF、微软Office系列软件格式以及JSON、XML、CSV 等纯文本格式
(3)Solr比较成熟、稳定
(4)不考虑建索引的同时进行搜索,速度更快
缺点
(1)建立索引时,搜索效率下降,实时索引搜索效率不高
当建立实时索引时,Solr会产生IO阻塞,随数据量的增加,搜索效率会变得更低
Solr、Elastic Search比较
Solr | Elastic Search |
---|---|
利用Zookeeper进行分布式管理 | 自身带有分布式协调管理功能 |
支持更多格式的数据 | Elasticsearch仅支持JSON文件格式 |
官方提供的功能更多 | 本身更注重于核心功能,高级功能多有第三方插件提供 |
在传统的搜索应用中表现好于Elasticsearch,但在处理实时搜索应用时效率明显低于 Elasticsearch 传统搜索应用的有力解决方案 | 更适用于实时搜索应用 |
工作方式
文档通过Http利用XML加到一个搜索集合中。查询该集合也是通过http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能、垂直搜索功能、高亮显示搜索结果。通过索引复制来提高可用性,提供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等
用户可以通过http请求,向搜索引擎服务器提交一定格式的XML/JSON文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML/JSON格式的返回结果
下载Solr
1.进入官网
https://lucene.apache.org/solr/
2.查看旧版本
3.选择需要版本
Lucene /Solr 8.x
Lucene / Solr 8.x是当前的稳定发行版,在发布Lucene / Solr 9.0之前将具有“点发行”,即8.1、8.2等
Solr 8.x当前已针对Java 8、9、10、11、12和(预发行版)13进行了持续测试(需要Java 8或更高版本)
未来的Lucene / Solr 9.x发行版也进行了开发和测试,这将要求Java 11为最低版本。该行当前已针对Java 11、12和(预发行版)13进行了测试
4.下载
官网下载比较慢,而且容易断线。一般选择镜像下载
镜像:http://www.apache.org/dyn/closer.cgi/lucene/solr/
安装Slor
1.压解Solr.zip安装包
盘符路径不能出现中文,避免出现问题
安装目录说明
(1)bin:脚本★
solr、solr.cmd
Solr的控制脚本:bin/solr(Unix、Linux)、 bin/solr.cmd(Windows)
该脚本是启动和停止Solr的首选工具。在以SolrCloud模式运行时,还可以创建集合或核心,配置身份验证以及使用配置文件
solr.in.sh、solr.in.cmd
发布的PostTool,提供了用于发布内容到Solr一个简单的命令行界面
分别是Lunix和Windows系统的属性文件。在此配置Java、Jetty和Solr的系统级属性。使用bin/solr/和bin/solr.cmd时,可以覆盖许多这些设置,但这使您可以将所有属性设置在一个位置
install_solr_services.sh
该脚本在Unix、Linux系统上用于将Solr作为服务安装
(2)contrib:插件
包括用于Solr的特殊功能的附加插件
(3)dist:jar文件
该dist目录包含主要的Solr .jar文件
(4)docs:文档
该docs目录包含指向Solr的在线Javadocs的链接
(5)example:使用实例
包括几种类型的示例,演示了各种Solr功能
(6)icenses:许可证
包含Solr使用的第三方库的所有许可证
(7)server:Solr心脏★
文件 | 描述 |
---|---|
server/solr-webapp | Solr的管理界面 |
server/lib | 码头图书馆 |
server/logs | 日志文件所在位置 |
server/resources | 日志配置 |
server/solr/configsets | 样本配置集 |
Solr包含的示例:
示例 | 描述 |
---|---|
exampledocs | 一系列简单的CSV、XML和JSON文件,可以在首次使用Solr时使用bin/post |
example-DIH | 包含一些DataImport Handler(DIH)示例,可帮助在数据库、电子邮件服务器甚至Atom提要中导入结构化内容。每个示例将索引不同的数据集 |
files | 供了一个基本的搜索UI,可以用于文档(例如Word或PDF),可能已经存储在本地 |
films | 包含一组强大数据,包括三种格式:CSV、XML和JSON |
2.启动Solr
①在Solr安装目录开启CMD
②输入:bin\solr.cmd start
命令 | 描述 |
---|---|
启动 | bin\solr.cmd start |
暂停 | bin\solr stop -all(.cmd可省略) |
这将在后台启动Solr,侦听8983端口。当在后台启动Solr时,脚本将等待以确保Solr正确启动,然后再返回命令行提示符
3.检查Solr是否正在运行
如果不确定Solr是否在本地运行,则可以使用status命令
bin/solr status
这将搜索计算机上正在运行的Solr实例,然后收集有关它们的基本信息
例如:版本和内存使用情况打开浏览器,输入地址:http://localhost:8983/solr/
至此,Solr已经安装成功。