你不会是程序猿吧?

es返回搜索结果的疑问

Elasticsearch | 作者 Pengfei | 发布于2020年11月13日 | 阅读数:1104

各位好,我有关于搜索结果的疑问,百思不得其解,望大神指点。
 
索引的数据里面有大量重复的数据,当输入 “借”的时候,只hit了 “借”,如果输入了“借款”,则只返回“借款”。
 
我想是如果输入“借”应该返回 “借” 和 “借款才对啊。
 我们有个索引的定义如下:
{
"mappings":{
"some-type":{
"_all":{
"enabled":false
},
"properties":{
"insertTime":{
"type":"date"
},
"keyword":{
"type":"text",
"fields":{
"kwext":{
"type":"keyword"
}
},
"analyzer":"ik_max_word",
"search_analyzer":"ik_smart"
},
"updateTime":{
"type":"long"
},
"userId":{
"type":"keyword"
},
"userName":{
"type":"keyword"
}
}
}
}
}

索引的数据大概有 16 个 "借",201个“借款”文档。
 
查询语句:
{
"query":{
"match":{
"keyword":{
"query":"借"
}
}
},
"_source": ["keyword"],
"size":100
}

搜索结果截图:
 

借款.png

 

借.png

 
 
 
 
 
 
已邀请:

JiangJibo - 喊我雷锋

赞同来自: Pengfei

"借"和"借款"都是单独的分词,ik分词器没有对"借款"再拆分成"借"和"款",所以搜"借"就只能出借,搜"借款"就出借款,要是搜"款"那么一个都没。

要回复问题请先登录注册