【问题标题】:Filtered query - retrieve the number of filtered documents per filter过滤查询 - 检索每个过滤器的过滤文档数
【发布时间】:2015-08-23 14:46:50
【问题描述】:

当使用 3 个过滤器执行过滤查询时,有没有办法知道哪个过滤器过滤了多少个文档?

我还有 20 个过滤器,有时只有一个过滤器在过滤所有文档时会出现问题,我想得到这方面的指示。

这有意义吗?

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    是的,您可以使用filters aggregation 来完成。将每个过滤器放入内部 filters 哈希中,在响应中您将看到与每个过滤器匹配的 doc_count

    {
      "size": 0,
      "aggs": {
        "messages": {
          "filters": {
            "filters": {
              "filter1": {
                "term": {
                  "field1": "sample1"
                }
              },
              "filter2": {
                "term": {
                  "field2": "sample2"
                }
              }
            }
          }
        }
      }
    }
    

    然后,当您获得这些信息时,最好重新处理您的查询,并从选择最少文档的那些开始排序过滤器,这样链下的下一个过滤器就可以处理尽可能少的文档。

    【讨论】:

      猜你喜欢
      • 2016-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多