不为失败找理由,要为成功找方法。

搜索字母数据查询不到结果

Elasticsearch | 作者 menzhipeng | 发布于2018年10月10日 | 阅读数:6979

数字  字母查询不到  ,是ik_smart分词器 的短板吗
file-read-3165.png file-read-3166.png
已邀请:

rochy - rochy_he

赞同来自: menzhipeng

000000?使用 ik_smart 会被分词为:000000、?;
你的查询应该是 matchQuery,当你输入 000 时候,分词结果为:000
然而 ES 存储的文档里面只有:000000 和 ?,匹配不到 000,所以搜索不到
 
你可以使用 boolQuery 将 matchQuery 和 wildcardQuery 结合起来即可实现你想要的结果

rochy - rochy_he

赞同来自: menzhipeng

其实是不推荐这种搜索方式的,你可以对用户名等特殊字段使用 ngram 切分(最大最小长度都设置为1),然后搜索的时候使用 matchPhraseQuery (如果希望包含一个字符就匹配,请使用 ​matchQuery)进行搜索即可

sxwinter

赞同来自:

我遇到了和你同样的问题。请问题主解决了吗

要回复问题请先登录注册