当前位置: 首页 > 面试题库 >

Elasticsearch必须和应该布尔查询之间的区别

范豪
2023-03-14
问题内容

MUSTSHOULDES中的bool查询有什么区别?

如果我 想要包含我的条款的结果,那我应该使用must

我有一个查询,应该只包含某些值,也没有日期/时间戳比今天的时间/日期低的结果-现在

我可以在下面的代码中使用多个过滤器吗:

"filtered": {
"filter": {
"bool" : {
        "must" : {
            "term" : { "type" : 1 }
            "term" : { "totals" : 14 }
            "term" : { "groupId" : 3 }
            "range" : {
                "expires" : {
                    "gte": "now"
                }
            }
        },

问题答案:

必须 表示:子句(查询)必须出现在匹配的文档中。这些子句必须匹配,例如逻辑 AND

应该 表示:这些子句中的至少一个必须匹配,例如逻辑 OR

基本上,它们的使用类似于逻辑运算符AND和OR。看到这个。

现在在布尔查询中:

必须 表示: 必须 与要包含的文档匹配的子句。

应该 表示:如果这些子句匹配,则增加_score; 否则,它们将无效。它们仅用于完善每个文档的相关性得分。

是的,您可以在内部使用多个过滤器must



 类似资料:
  • 我在这里遵循指南https://dzone.com/articles/23-usplient-ellasticsearch-example-queries,下面的bool查询让我感到困惑: 根据教程,查询的解释是: 搜索标题中有“ellasticsearch”或“solr”字样的书,由“Clinton Gormley”撰写,但不由“Radu Gheorge”撰写 我的问题是,bool查询中有3个条

  • 我使用bool查询的必须和must_not功能。它像预期的那样工作,直到我得到一个3级深的属性。 工作正常并返回结果,但如果我在bool查询中执行相同的操作,如。。 不返回任何结果。这是为什么?????记住其他bool查询,例如。。 干得很好!它只适用于任何3级深的字段,因此搜索任何1级深的术语。建议3。建议3

  • 我正在尝试执行X和(y或z)的查询,我需要得到代理是列表代理还是销售代理的所有已售出的属性。 只有bool才能得到9324个结果。当我添加bool should时,我得到了相同的结果集9324。ID为140699的代理应该只有大约100个结果。我也尝试过一个布尔过滤器,但没有成功。当用过滤器替换should时,结果就像另一个bool must一样,我只得到代理是列表代理和销售代理的结果

  • 我在ES中有两个问题。对于同一组文档,两者的周转时间都不同。两者在概念上都在做同样的事情。我没有什么疑问 1-这两者之间有什么区别?2-哪个更好使用?3-如果两者相同,为什么表现不同? 映射: 更新1: 我在同一组数据上尝试了bool/必须查询和bool/过滤器查询,但我发现了奇怪的行为 1-bool/必须查询能够搜索所需的文档 2-虽然bool/filter无法搜索文档。如果我删除第二个字段条件

  • 问题内容: 我正在用查询查询我的elasticsearch索引。查询本身的结构与此类似 我希望能够确定所有这些查询中哪一个是与结果匹配的查询。是否有内置的elasticsearch方法允许这样做,还是我必须手动进行? 问题答案: 您可以使用命名查询,然后在结果中获得匹配的查询的名称。 然后,在结果中,您将获得一个数组,其中包含与文档匹配的查询的名称。

  • 为了开始使用elasticsearch和kibana,我尝试了教程。但现在我得到了一个我自己无法解决的错误。 它对这个非常有趣:elasticsearch bool查询组合必须与或 亲切地问候格雷格