一、Solr 简介

1.1 Solr 简介

Solr 是 Apache 下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr 提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。

Solr 可以独立运行,运行在JettyTomcat等 Servlet 容器中。Solr 不提供构建 UI 的功能,Solr 提供了一个管理界面,通过管理界面可以查询 Solr 的配置和运行情况。

Solr 索引的实现方法很简单,用 Post 方法向 Solr 服务器发送一个描述Field及其内容的JSON文档,Solr根据JSON文档添加删除更新索引。Solr搜索只需发送 Get 请求,然后对 Solr 返回的JSON等格式的查询结果进行解析,组织页面布局。

1.2 Solr 与 Lucene 区别

Lucene 是一个开放源代码的全文检索引擎工具包,它不是一个完整的全文检索引擎,Lucene 提供了完整的查询引擎和索引引擎,目的是为开发人员提供一个简单易用的工具包,以方便在目标系统中实现全文检索的功能,或者以 Lucene 为基础构建全文检索引擎。参考文章:《Lucene 初探——基于 Lucene 6.6.2》

Solr 目标是打造一款企业级的搜索引擎系统,它是一个搜索引擎服务,可以独立运行,通过 Solr 可以非常快速的构建企业的搜索引擎。

二、Solr 安装与配置

2.1 下载 Solr

安装Solr前先要安装好 JAVATomcat,我使用的版本如下:

  • JDK 1.8

  • Tomcat 8.5

Solr下载地址点击这里,我使用的版本是 solr-6.6.2,和《Lucene 初探——基于 Lucene 6.6.2》这篇文章的版本相对应。下载完后,解压压缩包,目录结构如下:

名称 介绍
bin Solr的脚本启动目录
contrib 关于solr的第三方扩展
dist Solr的核心JAR包和扩展JAR包
dist/solrj-lib 构建基于Solr的客户端时用到的JAR包
dist/test-framework 包含测试Solr时候用到的JAR包
docs Solr文档
example Solr的简单示例
licenses 许可协议
server 本地运行Solr的必要文件

2.2 搭建 Solr 后台

Solr 自带了一个后台管理,但是不能直接运行,需要进行配置。

在配置前,先说明下我的 Tomcat 安装位于 D:\apache-tomcat-8.5.16,下载的solr源码包名称为 solr-6.6.2,后面的步骤使用到的目录请根据个人实际情况进行修改。

**Step1:**将 solr-6.6.2\server\solr-webapp 下的 webapp 复制到 D:\apache-tomcat-8.5.16\webapps 目录下,并改名为 solr(名称任意)。

Step2:solr-6.6.2\server\lib\ext 的 jar 包复制到 D:\apache-tomcat-8.5.16\webapps\solr\WEB-INF\lib 目录下。

**Step3:**将 solr-6.6.2\dist 下的 solr-dataimporthandler-6.6.2.jarsolr-dataimporthandler-extras-6.6.2.jar 复制到 D:\apache-tomcat-8.5.16\webapps\solr\WEB-INF\lib 目录下。

**Step4:**将 solr-6.6.2\server\lib 下的以 metrics 开头的 5 个 jar 包复制到 D:\apache-tomcat-8.5.16\webapps\solr\WEB-INF\lib 目录下。

Step5: 配置 solr 的家目录。在 E 盘下创建文件夹 solrHome(位置名称任意),将 solr-6.6.2\server\solr 下的所有文件复制到 E:\solrHome

**Step6:**修改 solr 配置文件。打开 D:\apache-tomcat-8.5.16\webapps\solr\WEB-INF 下的 web.xml,定位到 40 行,将下面一段注解打开,并修改 <env-entry-value> 值为 E:/solrHome

**Step7:**将 web.xml 168 行那一大块注释掉,不然访问 solr 会出现没有授权的错误。

Step8:D:\apache-tomcat-8.5.16\webapps\solr\WEB-INF 目录下创建 classes 文件夹,并将 solr-6.6.2\server\resources 下的 log4j.properties 复制过去。

**Step9:**启动 Tomcat,访问 http://localhost:8080/solr/index.htm,登陆到 Solr 后台管理。

2.3 创建一个核(core)

现在为 Solr 添加一个核(core),在 E:/solrHome 目录下新建一个文件夹,文件夹名就是核的名字,以 core1 为例。

拷贝 E:\solrHome\configsets\sample_techproducts_configs 目录下 的conf 文件夹到 core1 文件夹中。

在 Solr 后台的 Core Admin 中点击 Add Core 新建一个核,nameinstanceDir 填之前建的文件夹名。

添加后多了一个 Core Seletctor,至此核就建好了。

三、后台介绍

名称 含义
Dashboard 仪表盘,包含一些参数信息
Logging 日志信息
Core Admin 核管理
Java Properties Java、Tomcat参数信息
Thread Dump 每次CRUD产生的进程日志

核的信息中:

名称 含义
Overview 核的参数信息
Analysis 分词
Dataimport 数据导入,能够从数据库中将表等信息导入索引库中
Documents 对文档Document进行增、删、改操作
Files 显示核的conf目录下所有内容
Ping 测试与主机的ping值
Plugins / Status 插件
Query 对文档Document进行查询操作
Replication 副本,用于备份机
Schema 域配置