一、Solr 简介
1.1 Solr 简介
Solr
是 Apache 下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr 提供了比Lucene
更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。
Solr 可以独立运行,运行在Jetty、Tomcat等 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前先要安装好 JAVA
和 Tomcat
,我使用的版本如下:
-
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.jar
和 solr-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
新建一个核,name
和 instanceDir
填之前建的文件夹名。
添加后多了一个 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 | 域配置 |