欢迎大家来到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