### ElasticSearch 安装 ik 分词插件 #### 背景介绍 ElasticSearch 是一个基于 Lucene 的搜索引擎,提供了分布式、实时的全文搜索功能。在处理中文文本时,通常需要借助第三方分词工具来提高搜索效果。ik 分词器就是其中一种广泛使用的中文分词插件,它能显著提升中文文本的搜索效率与准确性。 #### 安装 ik 分词插件步骤详解 ##### 1. 获取 ik 分词插件源码 通过 Git 克隆 ik 分词插件的仓库到本地: ```bash git clone https://github.com/medcl/elasticsearch-analysis-ik ``` 克隆完成后,进入项目目录: ```bash cd elasticsearch-analysis-ik ``` 接下来编译插件源码: ```bash mvn clean package ``` 这将生成所需的 `.jar` 文件 `elasticsearch-analysis-ik-1.2.5.jar`。 ##### 2. 配置 ElasticSearch 将编译好的 `elasticsearch-analysis-ik-1.2.5.jar` 复制到 ElasticSearch 的 `plugins` 目录下的 `analysis-ik` 文件夹中。如果不存在 `analysis-ik` 文件夹,则需要手动创建: ```bash mkdir -p ES_HOME/plugins/analysis-ik cp elasticsearch-analysis-ik-1.2.5.jar ES_HOME/plugins/analysis-ik/ ``` 同时,在 ElasticSearch 的配置文件 `elasticsearch.yml` 中添加以下内容来启用 ik 分词器: ```yaml index: analysis: analyzer: ik: alias: [ik_analyzer] type: org.elasticsearch.index.analysis.IkAnalyzerProvider ik_max_word: type: ik use_smart: false ik_smart: type: ik use_smart: true index.analysis.analyzer.default.type: ik ``` 这里定义了三个不同的分析器:`ik`、`ik_max_word` 和 `ik_smart`,分别对应不同的分词策略。 - `ik`: 默认的分词模式。 - `ik_max_word`: 细粒度的分词模式,会将文本尽可能细地进行切分。 - `ik_smart`: 智能简短词模式,旨在避免过细的分词。 ##### 3. 验证插件安装 完成以上步骤后,重启 ElasticSearch 服务以使配置生效。 为了验证 ik 分词插件是否成功安装并启用,可以执行以下命令检查插件列表: ```bash bin/elasticsearch-plugin list ``` 如果 ik 插件已经正确安装,命令输出中应包含 `analysis-ik`。 ##### 4. 使用 ik 分词插件 在索引文档时,可以通过指定 `indexAnalyzer` 和 `searchAnalyzer` 来选择使用 ik 分词器: ```java XContentBuilder content = XContentFactory.jsonBuilder().startObject() .startObject("page") .startObject("properties") .startObject("title") .field("type", "string") .field("indexAnalyzer", "ik") .field("searchAnalyzer", "ik") .endObject() .startObject("code") .field("type", "string") .field("indexAnalyzer", "ik") .field("searchAnalyzer", "ik") .endObject() .endObject() .endObject() .endObject(); ``` 这里的 `title` 和 `code` 字段都指定了使用 ik 分词器来进行索引和搜索。 #### 总结 通过以上步骤,我们成功地在 ElasticSearch 中安装并启用了 ik 分词插件,大大提升了中文文本的搜索性能。ik 分词器能够根据不同的场景需求灵活选择分词模式,使得搜索结果更加准确、高效。对于处理大量中文文本数据的应用而言,这是一个非常实用且必要的功能。
假设读者已经安装好ES,如果没有的话,请参考ElasticSearch入门 ―― 集群搭建。安装IK分词需要的资源可以从这里下载,整个安装过程需要三个步骤:
1、获取分词的依赖包
通过git clone https://github.com/medcl/elasticsearch-analysis-ik,
下载分词器源码,然后进入下载目录,
执行命令:mvn clean package,
打包生成elasticsearch-analysis-ik-1.2.5.jar。将这个jar拷贝到ES_HOME/plugins/analysis-ik目录下面,如果没有该目录,则先创建该目录。
2、ik目录拷贝
将下载目录中的ik目录拷贝到ES_HOME/config目录下面。
3、分词器配置
打开ES_HOME/config/elasticsearch.yml文件,在文件最后加入如下内容:
index:
analysis:
analyzer:
ik:
alias: [ik_analyzer]
type: org.elasticsearch.index.analysis.IkAnalyzerProvider
ik_max_word:
type: ik
use_smart: false
ik_smart:
type: ik
- 粉丝: 13
- 资源: 266
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Java答题期末考试必须考
- 组播报文转发原理的及图解实例
- 青龙燕铁衣-数据集.zip
- 指针扫描和内存遍历二合一工具
- 基于JavaScript的在线考试系统(编号:65965158)(1).zip
- 五相电机双闭环矢量控制模型-采用邻近四矢量SVPWM-MATLAB-Simulink仿真模型包括: (1)原理说明文档(重要):包括扇区判断、矢量作用时间计算、矢量作用顺序及切时间计算、PWM波的生成
- Linux下的cursor安装包
- springboot-教务管理系统(编号:62528147).zip
- 3dmmods_倾城系列月白_by_白嫖萌新.zip
- SVPWM+死区补偿(基于电流极性)+高频注入法辨识PMSM的dq轴电感(离线辨识)-simulink