elasticsearch must和should
时间: 2023-05-02 07:04:06 浏览: 140
Elasticsearch 中“must”和“should”的含义大致为:
- “must”指定查询条件必须全部满足,相当于 AND 关系。
- “should”指定查询条件部分匹配即可,相当于 OR 关系。
例如,如果你想要查询包含 “apple” 或者 “banana” 的文档,你可以使用一个 bool 查询,设置两个 should 分句:“apple” 和 “banana”。
又例如,如果你想要查询同时包含 “apple” 和 “banana”的文档,你可以使用一个 bool 查询,设置两个 must 分句:“apple” 和 “banana”。
总之,“must”和“should”可用于构建更精确的查询,以更好的满足你的搜索需求。
相关问题
Elasticsearch filter must should 共同使用
在Elasticsearch中,filter和must/should是用于查询的两个不同的子句。
- filter子句用于筛选匹配查询条件的文档,但不会影响文档的相关性得分(即不会影响文档的排序)。Filter子句通常用于对查询结果进行过滤,例如基于日期范围、地理位置或其他条件来限制查询结果。
- must/should子句用于确定文档是否与查询条件匹配,并可以影响文档的相关性得分。must子句表示所有条件都必须匹配,而should子句表示至少有一个条件匹配即可。
当使用filter和must/should一起使用时,filter子句将首先应用,然后must/should子句将应用于剩余的文档。这可以提高查询的性能,并且可以确保查询结果仅包含满足所有必需条件并满足任何可选条件的文档。
es 中 should 和must 连用
should 和 must 可以连用,表示强烈建议或必须要做的事情。
例如:
- You should must wear a helmet when riding a bike.(骑自行车时应该戴头盔)
- You should must study hard if you want to pass the exam.(如果想通过考试,你应该必须努力学习)
阅读全文