【问题标题】:ElasticSearch: getting facets from all results with filter queryElasticSearch:使用过滤器查询从所有结果中获取方面
【发布时间】:2016-03-11 15:58:22
【问题描述】:

我不知道这个问题的标题是否足够清楚。

我在 ElasticSearch 的左窗格中有一个带有语言过滤器的文本搜索。当从搜索结果(来自查询)的左窗格中选择特定语言过滤器时,我仍然想从查询的所有搜索结果中获取语言方面。我知道这在 Solr 中是可能的,但我不确定这在 ElasticSearch 中是否可行。

【问题讨论】:

    标签: elasticsearch filter facet


    【解决方案1】:

    是的,您可以通过使用post_filter 而不是普通过滤器来实现此目的。 post_filter 所做的是在对完整数据集计算聚合之后过滤文档。

    所以不要这样:

    {
      "query": {
        "bool": {
          "filter": {
            "term": {
              "some_field": "some_value"
            }
          }
        }
      },
      "aggs": {
        "languages": {
          "terms": {
            "field": "language"
          }
        }
      }
    }
    

    这样做:

    {
      "post_filter": {
        "term": {
          "some_field": "some_value"
        }
      },
      "aggs": {
        "languages": {
          "terms": {
            "field": "language"
          }
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-09
      • 1970-01-01
      • 1970-01-01
      • 2014-07-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多