ES搜索,单个文字可以搜索,多个文字搜索失败

ES搜索,单个文字可以搜索,多个文字搜索失败今天排查 ES 的一个问题 这个问题是客户反馈在搜索列表中搜索的时候 输入一个文字的搜索可以搜索出对应的数据 但是输入两个文字的时候搜索出来的结果是空

欢迎大家来到IT世界,在知识的湖畔探索吧!

今天排查ES的一个问题:这个问题是客户反馈在搜索列表中搜索的时候,输入一个文字的搜索可以搜索出对应的数据,但是输入两个文字的时候搜索出来的结果是空。于是在排查这个问题的过程中原来的搜索参数是:

{“from”:0,”size”:50,”query”:{“bool”:{“must”:[{“wildcard”:{“name”:{“wildcard”:”*测*”,”boost”:1.0}}}],”must_not”:[{“term”:{“status”:{“value”:-1,”boost”:1.0}}}],”adjust_pure_negative”:true,”boost”:1.0}},”sort”:[{“createTime”:{“order”:”desc”}},{“createTime”:{“order”:”desc”}}]}

当模糊搜索name是否包含“测”的名称的时候,数据可以正常搜索出来,但是当输入“测试”:

{“from”:0,”size”:50,”query”:{“bool”:{“must”:[{“wildcard”:{“name”:{“wildcard”:”*测试*”,”boost”:1.0}}}],”must_not”:[{“term”:{“status”:{“value”:-1,”boost”:1.0}}}],”adjust_pure_negative”:true,”boost”:1.0}},”sort”:[{“createTime”:{“order”:”desc”}},{“createTime”:{“order”:”desc”}}]}

该出来的数据却没出来。经过不同数据的排查,发现在name的搜索参数修改成name.keyword之后,即

{“from”:0,”size”:50,”query”:{“bool”:{“must”:[{“wildcard”:{“name.keyword”:{“wildcard”:”*测试*”,”boost”:1.0}}}],”must_not”:[{“term”:{“status”:{“value”:-1,”boost”:1.0}}}],”adjust_pure_negative”:true,”boost”:1.0}},”sort”:[{“createTime”:{“order”:”desc”}},{“createTime”:{“order”:”desc”}}]}

这样的话,数据可以正常的搜索出来。

后面大家如果碰到这样的问题,不妨用这个办法来处理一下。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/130540.html

(0)
上一篇 30分钟前
下一篇 15分钟前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信