ElasticSearch中的should怎么不管用呢?
最近在项目中ElasticSearch中的should不管用呢,于是我就在网上开始查资料了!最终终于知道了,我也是看的别人的博客才知道的。
当使用should查询时,如果同级使用了must或者filter查询,那么should的查询语句就不是或者的意思了,而是有没有都行的含义,就相当于失效了
这时候有两种解决方法
- 加上"minimum_should_match":1,这样就是should中的内容要匹配上一条
- 在must中的查询嵌套上一层bool在这个bool中只写should进行查询
当然我感觉第一种方式比较简单哈
如果有什么不对的地方还请大家一起指出探讨