在 Elasticsearch 中,可以使用 IK 分词器来替代默认的 text 类型。IK 分词器是一个开源的中文分词器,支持中文分词和英文分词。
要将默认的 text 类型修改为 IK 分词器,需要进行以下步骤:
- 安装 IK 分词器插件:
- 下载 IK 分词器插件,可以从 GitHub 上的 elasticsearch-analysis-ik 页面下载最好下载与ES版本相同的IK版本文件。
- 将下载的插件解压缩到 Elasticsearch 的插件目录中。(插件目录在ES的根目录下的plugins)
- 创建索引并指定 IK 分词器:
- 在创建索引时,使用自定义的分词器配置来指定字段的分词器为 IK 分词器。
以下是一个示例的索引创建请求的 JSON 数据,其中将字段 content 的分词器设置为 IK 分词器:
PUT /my_index
{
"settings": {
"analysis": {
"analyzer": {
"ik_analyzer": {
"type": "custom",
"tokenizer": "ik_max_word",
"filter": ["synonym_filter", "stop_filter"]
}
},
"filter": {
"synonym_filter": {
"type": "synonym",
"synonyms_path": "analysis/synonyms.txt"
},
"stop_filter": {
"type": "stop",
"stopwords_path": "analysis/stop.txt"
}
}
}
},
"mappings": {
"properties": {
"content": {
"type": "text",
"analyzer": "ik_analyzer"
}
}
}
}
一、 以上settings中说明:
- 设置了一个自定义的解析器analyzer
- 定义名称为ik_analyzer(可根据自己喜好修改名称)
- 定义它的类型为custom自定义类型
- 采用的分词tokenizer为ik_max_word
- 定义了同义词和停用词过滤filter为synonym_filter、stop_filter
- 设置过滤filter
- 分别命名为synonym_filter和stop_filter(名字自己取),上边引用的filter就是对应的这个名字(不要写错)
- 定义了type类型分别是synonym(同义词)、stop(停用词)
- synonyms_path和stopwords_path分别是同义词和停用词文件位置,文件路径为ES根目录下的config中创建analysis/synonyms.txt和analysis/stop.txt;(文件夹analysis和文件XXX.txt可自己定义,主要是放在config下边)
二、 以上mappings中说明:文章来源:https://www.toymoban.com/news/detail-635601.html
- 定义属性properties为content(这个就是我们要进行分词的字段名)
- 定义content字段类型为type:text
- 字段content采用的解析方式analyzer为上边settings中定义的ik_analyzer
以上就基本完成了ES+IK分词的索引创建文章来源地址https://www.toymoban.com/news/detail-635601.html
到了这里,关于Elasticsearch中使用IK分词配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!