喵星之旅-狂奔的兔子-ElasticSearch中文分词器基本使用(ik)

创建索引时指定分词

1
2
3
4
5
6
7
8
9
10
11
12
13
14
PUT bunny
{
"mappings": {
"properties": {
"name": {
"type": "keyword"
},
"address": {
"type": "text",
"analyzer": "ik_max_word"
}
}
}
}

测试分词器的分词结果

1
2
3
4
5
GET /_analyze
{
"analyzer": "ik_max_word",
"text": "身无彩凤双飞翼"
}

该命令基本无实际意义,只是使用分词后如果不确定是否分词正确,确认分词情况的。基于该结果决定是否添加自定义的分词规则。

1
2
3
4
5
6
7
8
9
10
11
12
13
GET _analyze
{
"analyzer": "ik_max_word",
"text": "身无彩凤双飞翼"
}


# standard分词器
GET _analyze
{
"analyzer": "standard",
"text": "身无彩凤双飞翼"
}

上面代码执行结果对比可知,有中文分词器会正确识别分词,默认分词显然不是我们需要的结果,自行执行对比即可。

在有分词的字段上查询

1
2
3
4
5
6
7
8
9
GET /bunny/_search
{
"query": {
"match": {
"address": "中国北京"

}
}
}

由于分词结果为:中国北京、中国、北京。所以包含这三个值的均被查出。如果没有中文分词器将会识别为4个汉字。

文章目录
  1. 创建索引时指定分词
  2. 测试分词器的分词结果
  3. 在有分词的字段上查询
|