elasticsearch安装ik分词器与Springboo的t整合
- ik分词器安装
- ik分词器下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v7.4.2 由于已经将elasticsearch相关的目录影射到本地了,只需要下载解压并上传到服务器本地对应位置即可。

- 检查ik分词器是否安装成功:
进入容器:docker exec -it d92 /bin/bash (d92为容器id)
进入bin目录执行:elasticsearch-plugin list 即可列出ES安装成功的插件

- 配置ik分词器
- 进入ik分词器的config目录,打开IKAnalyzer.cfg.xml配置文件

将地址修改为词库的地址即可。
没有配置的效果:

无法识别“摆烂” - 修改fenci.txt文件,添加需要识别的单词,并重启ES:docker restart elasticsearch

配置成功后的效果:

能够识别“摆烂”这个单词。
- Springboot整合elasticsearch
- 必须所有es相关依赖版本一致(非常重要)引入elasticsearch-rest-high-level-client依赖并且排除其他版本不一致的子依赖重新引入
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.4.2</version>
<!-- 排除版本不是7.4.2的子依赖 -->
<exclusions>
<exclusion>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
</exclusion>
<exclusion>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-client</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 重新引入上面排除的依赖 -->
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-client</artifactId>
<version>7.4.2</version>
</dependency>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>7.4.2</version>
</dependency>
再次确保版本一致:
- 编写ES相关配置(这里将es地址和端口以及协议抽成配置)
# 自定义 es配置
elasticsearch:
address: 192.168.1.9
port: 9200
scheme: http
- 配置类(读取上面抽取配置)
@Configuration
public class ElasticSearchConfig {
/**
* 获取配置信息
*/
@Value("${elasticsearch.address}")
private String address;
@Value("${elasticsearch.port}")
private int port;
@Value("${elasticsearch.scheme}")
private String scheme;
@Bean
public RestHighLevelClient esRestClient() {
return new RestHighLevelClient(RestClient.builder(new HttpHost(address, port, scheme)));
}
}

浙公网安备 33010602011771号