弹性搜索统计信息聚合错误的结果

时间:2018-02-16 14:25:04

标签: elasticsearch

我想在匹配查询的结果上使用分页运行统计信息聚合。

POST catalog/product/_search
{
    "_source": ["price.new"],
   "query": {
      "bool": {
         "must": [
            {
               "multi_match": {
                  "type": "best_fields",
                  "query": "tie",
                  "fields": [
                     "name",
                     "name.search"
                  ],
                  "operator": "and",
                  "minimum_should_match": "30%"
               }
            }
         ]
      }
   },
   "from": 1,
   "size": 50,
   "sort": {
      "price.new": {
         "order": "asc"
      }
   },
   "aggs": {
      "priceRange": {
         "stats": {
            "field": "price.new"
         }
      }
   }
}

查询结果中我的最低价格产品是:8439

显示统计数据汇总的位置:7839

如果我从查询中删除大小参数而不是查询返回价格为7839的产品。

如果使用size参数,为什么会出现这种差异。

我希望我的统计数据聚合结果与当前结果集匹配,即使结果集省略了某些记录,聚合应该反映查询结果。

由于

1 个答案:

答案 0 :(得分:0)

您可以使用multi search进行查询和聚合,并且只在查询中指定大小,而不是在聚合中指定大小。

{"index" : "catalog", "size": 50 , "sort": {"price.new":{"order":"asc"   }}}
//your query
{"index" : "catalog"}
//your agggregation