三人行必有我师

ES 短语匹配命中的怪事

匿名 | 发布于2020年06月15日 | 阅读数:2273

ES 6.1.1
 
分词:
GET _analyze
{
"analyzer": "ik_max_word"
, "text": "loloh"
}



{
"tokens": [
{
"token": "loloh",
"start_offset": 0,
"end_offset": 5,
"type": "ENGLISH",
"position": 0
}
]
}

  
然后查询语句是
GET myindex/_search
{
"query": {
"bool": {
"should": [
{
"match_phrase": {
"name": {
"query": "lo"
, "analyzer": "ik_max_word"
}
}
}
],
"minimum_should_match": 1
}
}
}
这里的读写分分词器都是一个,然后按照理解, lo 短语匹配是不能命中 loloh 的,但是居然可以正常命中。。。有人了解这是为啥吗?
已邀请:

FFFrp

赞同来自:

explain 看下具体打分情况,我这边测试是搜不出来的

laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net

赞同来自:

英语分词推荐英文或者标准分词器 standard

zakokun - 后端开发

赞同来自:

你把老的索引整个打出来看看,应该还是索引结构的问题,也许你老索引用的是ngram分词呢

要回复问题请先登录注册