当前位置:   article > 正文

Elasticsearch中should失效的问题_elasticsearch should

elasticsearch should

问题

Elasticsearch中,当我们将must和should同级使用的时候,我们就会发现should失效了。

分析原因

首先,当我们直接使用should的时候,参数minimum_should_match默认为1,此时我们使用should是可以正常返回结果的。
但是当我们将must和should同级使用的时候,此时minimum_should_match参数变为了0,也就是即使一个也没有匹配也是会有结果返回的,此时should就失效了。
这是因为must的作用就是要求所有的条件都满足,而should只是一个可选的条件。

解决方案

  1. 如果想让should中至少一个条件生效,只需要手动配置mini_should_match为1即可
  2. 将should通过bool语句嵌到must里面,以避免should和must同级使用
  3. 在Java代码中,还可以通过must配合termsQuerys来达到should的效果。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/807323
推荐阅读
相关标签
  

闽ICP备14008679号