![f6fd27c9a5d23bb28fe9b59a72f70612.png](https://i-blog.csdnimg.cn/blog_migrate/e2e966e7e75f1ef968e8871063b80a2c.jpeg)
1. Solr介绍
(1) 什么是全文检索?
全文检索是一种将文件中所有文本与检索项匹配的文字资料检索方法。全文检索首先将要查询的目标文档中的词提取出来,组成索引,通过查询索引达到搜索目标文档的目的
(2) 什么是Lucene?
Lucene 是一个高效的,基于Java 的全文检索库
(3) 什么是Solr?
Solr是一个开源搜索平台,用于构建搜索应用程序。 它建立在Lucene(全文搜索引擎)之上。 Solr是企业级的,快速的和高度可扩展的。 使用Solr构建的应用程序非常复杂,可提供高性能
2. Solr安装-安装Solr服务
(1) 如何在Linux环境中安装Solr服务?
其实安装 solr 服务就是将 solr 的 war 包,拷贝到 tomcat 的 webapps 目录下。
3. Solr安装-安装Solr索引库
(1) 如何在Solr服务中配置索引库?
在 solr 的服务中配置索引库的位置注意:需要配置的路径为索引库的根。可以使用 linux 中的 pwd 命令查看绝对路径。将该路径添加到 solr 服务中的 web.xml 文件中 Solr 服务在启 动时,是通过他的 web.xml 文件中的节点配置获取索引库的绝对位置的。vim web.xml 在 web.xml 中找到<env-entry>.注意:该节点默认是注释状态的,我们需要先去掉注释。然后将 拷贝的索引库的路径添加到该节点的<env-entry-value>节点中
4. Solr索引库-目录结构
(1) SolrHome中的每一个目录的作用是什么?
solr.xml 配置 solr 集群
collection1(索引库:solr core)
data 存放索引
conf 索引库的配置目录
schema.xml:配置字段以及字段类型
5. Solr索引库-schema.xml讲解
(1) schema.xml的作用是什么?
配置字段以及字段类型
(2) <field>是配置什么的?
定义域
(3) <field>中有哪些属性?每个属性的作用是什么?
name:表示域的名称,是强制必须有的属性
type:域类型的名称,与 fieldType 元素的 name 属性值对应,是强制必须有的属性
indexed:是否参与检索。true 即表示需要对该域进行索引。默认值为 false stored:是否将 field 域中的内容存储到文档域,简单通俗的来说,就是你这一个 field 需不需要被当作查询结果返回。
required:表示这个域是否是必须要在 document 中存在,默认值为 false,如果此配 置项设为 true,则你的 document 中必须要添加此域,否则你创建索引时会抛异常。
(4) <fieldType>是配置什么的?
定义域的类型
(5) <fieldType>中有哪些属性?每个属性的作用是什么?
Name:域类型的名称,作为域类型标识符存在,在定义域(Field)时使用的类型 (FieldType)属性就是域类型的名称。
Class:域类型的数据类型,该属性指向的是 solr 中的已定义的类型,或者是用户定 义的类型,域类型中的数据会被初始化成 class 执行类类的对象。
sortMissingFirst/sortMissingLast:控制当排序域的值不存在时该文档(Document) 所在队列的位置。true 是则在队头/队尾
(6) <copyField>是配置什么的?
复制域。可实现更新与查询分离
(7) <copyField>中有哪些属性?每个属性的作用是什么?
Source:源域
Dest:目标域
6. Solr索引库-Solr的索引机制
(1) Solr索引库-Solr的索引机制
是以文档的 ID 为关键字,索引文档中每个字的位置信息,查找时扫描索引中 每个文档中字的信息直到找出所有包含查询关键字的文档
(2) 什么是倒排索引?
对数据进行分析,抽取出数据中的词条,以词条作为 key,对应数据的存储位置作为 value,实现索引的存储。这种索引称为倒排索引。
7. Solr索引库-配置中文分词器
(1) 中文分词器IK Analyzer的作用什么是?
因为默认的solr不会为中文词作为key,而是单独的作为key,所以需要IK来帮助我们把词作为key
(2) 如何为Solr配置中文分词器?
1.将配置文件需要放到 classes 目录下。
2.在 solr 中的 WEB-INF 下时没有 classes 目录的。我们需要先创建一个
3.Jar 包放到 WEB-INF/lib 目录下
4.在 schema.xml 中配置中文分词器
8. Solr管理界面介绍
(1) Dashboard的作用是什么?
可查看到 solr 运行时间、solr 版本, 系统内存、虚拟机内存的使用情况
(2) Logging的作用是什么?
显示 solr 运行出现的异常或错误
(3) Core Admin的作用是什么?
主要有 Add Core(添加核心), Unload(卸载核心),Rename(重命名核心),Reload(重 新加载核心),Optimize(优化索引库) Add Core 是添加 core : 主 要 是 在 instanceDir 对 应 的 文 件 夹 里 生 成 一 个 core.properties 文件
(4) Java Properties的作用是什么?
可查看到 java 相关的一些属性的信息
(5) Thread Dump的作用是什么?
查看每个线程的详细信息,以及状态信息
(6) Core Selecter(core选择器)的作用是什么?
包含基本统计如当前文档数;和实例信息如当前核心的配置目录
(7) Analysis(分析)的作用是什么?
检验分词效
(8) Dataimport(导入数据)的作用是什么?
导入数据
(9) Documents的作用是什么?、
索引的相关操作,如:增加,修改,删除等
(10)Files文件夹的作用是什么?
solr_home 下的 core 下的 conf 下的相关文件,可单击查看里面的内容
(11)Ping的作用是什么?
查看当前核心库还是否工作的以及响应时间
(12)Plugins /stats的作用是什么?
Solr 自带的一些插件以及我们安装的插件的信息以及统计
(13)Query(查询页面)的作用是什么?
查询的结果要显示哪个字段,就得将 schema.xml 文件配置字段时的 stored 属性设为 true
(14)Replication的作用是什么?
显示你当前 Core 的副本,并提供 disable/enable 功能
(15)Schema的作用是什么
展示该 Core 的 shema.xml 文件中的内容