一、 Apache Solr 简介
Apache Solr 是Apache Lucene项目的开源企业搜索平台。其主要功能包括全文检索、命中标示、分面搜索、动态聚类、数据库集成,以及富文本(如Word、PDF)的处理。Solr是高度可扩展的,并提供了分布式搜索和索引复制。Solr是最流行的企业级搜索引擎,Solr 4还增加了NoSQL支持,还支持REST风格API。支持强大的匹配能力,如短语,通配符,连接,分组和更多不同的数据类型。它使用 Apache Zookeeper特别针对高流量进行优化。Apache Solr提供各式各样的功能,我们列出了部分最主要的功能。
先进的全文搜索功能。
XML,JSON和HTTP - 基于开放接口标准。
高度可扩展和容错。
同时支持模式和无模式配置。
分页搜索和过滤。
支持像英语,德语,中国,日本,法国和许多主要语言
丰富的文档分析。
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是一样的。
二、下载与安装
1、 安装jdk 1.8 环境
solr是java开发的,运行要有java环境。由于Apache Solr 是自带web容器Jetty服务器,所以不需要安装其他web容器。
2、下载 Solr
Apache Solr 官网下载:http://lucene.apache.org/solr/downloads.html
3、安装 Solr
下载完成后会得到一个压缩包,解压后会获得一个solr-7.4.0文件夹,此文件夹目录结构如下图
文件夹 说明
bin solr的运行脚本
contrib Solr的一些扩展jar包,包括分词器,聚类,语言识别,数据导入处理,非结构化内容分析等.
└─ analysis-extras 包含一些文本分析组件及其依赖
├─ clustering 包含一个用于集群搜索结果的引擎
├─ dataimporthandler 空
├─ dataimporthandler-extras 把数据从数据库或其它数据源导入到solr
├─ extraction 整合了Apache Tika。Tika是用于解析一些富文本(诸如Word,PDF)的框架
├─ langid 检测将要索引的数据的语言
├─ ltr 空
├─ prometheus-exporter 日志的输出
├─ uima 包含用于整合Apache UIMA(文本元数据提取的框架)类库
└─ velocity 包含基于Velocity模板的简单的搜索UI框架
dist 该目录包含运行solr的jar文件,以及相关的依赖jar文件
docs solr 的API文档
example solr 示例程序
licenses solr用到的一些证书
server solr 核心文件夹
└─ contexts Solr运行于Jetty下时的配置文件
├─ etc Jetty的配置
├─ lib 关于Jetty与metrics的依赖
├─ logs 日志文件
├─ modules
├─ resources Log4j的配置文件
├─ scripts scripts
├─ solr 所有构建的 索引库
├─ configsets 示例配置文件
└─ solr-webapp Jetty发布的解压war后的文件
start.jar solr 启动程序
三、运行solr
Solr的运行分为单机运行和集群运行,这里以单机为例: 在bin目录下执行 solr start -p 8888
如图这句提示出现后证明服务启动成功(启动过程中如果打印java异常堆栈log4j2.xml 文件名、目录名或卷标语法不正确。没有关系不妨碍我们正常使用solr可以忽略此问题),接下来在浏览器输入http://localhost:8888/solr可以进入Admin UI界面验证是否启动成功如下图
solr常用命令:
solr start –p <端口号> 单机版启动solr服务
solr restart –p <端口号> 重启solr服务
solr stop –p <端口号> 关闭solr服务
solr create –c <name> 创建一个core实例
此外有关于solr集群版启动方式和其他更多的命令可以参看官方文档。