ES ik分词器设置分词长度为1
ES(Elasticsearch)中的ik分词器是一种中文分词器,可以将文本按照一定的规则切分为词语。默认情况下,ik分词器将文本按照最小长度为2的规则进行分词,即只有长度大于等于2的词语才会被切分出来。
如果需要将分词长度设置为1,可以通过自定义ik分词器的配置来实现。以下是设置分词长度为1的示例配置:
- 创建一个名为"my_custom_ik"的分词器
PUT /my_custom_ik
{
"settings": {
"analysis": {
"analyzer": {
"my_custom_ik_analyzer": {
"type": "custom",
"tokenizer": "ik_max_word",
"filter": ["my_custom_length_filter"]
}
},
"filter": {
"my_custom_length_filter": {
"type": "length",
"min": 1,
"max": 10
}
}
}
}
}
- 使用自定义的分词器对文本进行分词
GET /my_custom_ik/_analyze
{
"analyzer": "my_custom_ik_analyzer",
"text": "中华人民共和国"
}
执行以上步骤后,你将得到以下分词结果:
{
"tokens": [
{
"token": "中",
"start_offset": 0,
"end_offset": 1,
"type": "CN_WORD",
"position": 0
},
{
"token": "华",
"start_offset": 1,
"end_offset": 2,
"type": "CN_WORD",
"position": 1
},
{
"token": "人",
"start_offset": 2,
"end_offset": 3,
"type": "CN_WORD",
"position": 2
},
{
"token": "民",
"start_offset": 3,
"end_offset": 4,
"type": "CN_WORD",
"position": 3
},
{
"token": "共",
"start_offset": 4,
"end_offset": 5,
"type": "CN_WORD",
"position": 4
},
{
"token": "和",
"start_offset": 5,
"end_offset": 6,
"type": "CN_WORD",
"position": 5
},
{
"token": "国",
"start_offset": 6,
"end_offset": 7,
"type": "CN_WORD",
"position": 6
}
]
}
可以看到,分词结果中包含了长度为1的词语。注意,设置分词长度为1可能会导致一些不符合预期的结果,因为中文的单个字并不是一个独立的语义单元
原文地址: https://www.cveoy.top/t/topic/ivFu 著作权归作者所有。请勿转载和采集!