需要在弹性搜索中限制用于构面的行

时间:2013-09-30 20:56:48

标签: elasticsearch tire

有没有办法限制用于构面聚合的行数? 例如: 如果我的查询按日期过滤记录并且大小为300,则facet会忽略该大小,只返回该日期范围的构面。有没有办法只为这300条记录返回方面?

curl -X GET 'localhost:9200/some_index/some_type/_search?routing=1&search_type=count&size=300&pretty' -d '{
  "query": {
    "bool": {
      "must": [
        {
          "query_string": {
            "query": "account:1"
          }
        },
        {
          "query_string": {
            "query": "\"postedTime:[2013-06-12T01:00 TO 2013-06-19T01:00]\""
          }
        }
      ]
    }
  },
  "sort": [
    {
      "postedTime": "asc"
    }
  ],
  "facets": {
    "products": {
      "terms": {
        "field": "product",
        "size": 10,
        "all_terms": false
      }
    },
    "types": {
      "terms": {
        "field": "type",
        "size": 10,
        "all_terms": false
      }
    }
  },
  "size": 300,
  "version": true
}'

1 个答案:

答案 0 :(得分:0)

我担心现在有一个请求是不可能的。

您可以针对第一个请求执行search,然后使用filtered查询将返回的ID ids filter与您的构面作为第二个请求。{/ p>