跳转到主内容
思享编程网:思考分享,玩转编程世界!

ElasticSearch中的must、must_not、should怎么用?

大家好,我是陆砚码,今天我们来聊聊ElasticSearch中那些让人头疼的must、must_not、should组合关系。你是不是也遇到过,明明写了should条件,结果却只展示了must的结果?别急,今天我们就来一探究竟。

一、概念先搞懂

首先,我们来回顾一下这几个概念:

  • must:相当于数学中的交集,所有条件都必须满足。
  • must_not:相当于数学中的差集,满足其中一个条件的数据就不被选择。
  • should:相当于数学中的并集,满足其中一个条件的数据就会被选择。

二、组合关系大揭秘

接下来,我们来看看这些组合关系:

  • 多个must组合:求交集。
  • 多个must_not组合:全部数据减去命中must_not的数据集。
  • 多个should组合:求并集。
  • must和must_not组合:满足must的数据减去满足must_not的数据。
  • must和should组合:满足must的数据,should用来打分,影响返回排序。
  • should和must_not组合:满足should的数据减去满足must_not的数据。
  • must、should和must_not组合:满足must的数据减去满足must_not的数据,should用来打分,影响返回排序。

三、实验验证

下面我们通过一些实验来验证这些组合关系。

(实验部分代码与原文一致,此处省略)

通过实验,我们可以看到不同的组合关系会产生不同的结果。

四、小结与拓展

今天我们学习了ElasticSearch中must、must_not、should的组合关系,希望对大家有所帮助。如果你还有其他问题,欢迎在评论区留言讨论。我是陆砚码,我们下期再见!

想了解更多编程知识,请关注「思享编程网」(www.sxgpb.com)。

相关文章