如何限制Elasticsearch的结果

时间:2016-07-12 07:00:01

标签: elasticsearch

我写了一个弹性搜索查询,只按降序排列前十名结果

{

  "aggs": {
    "group_by_user": {
      "terms": {
        "field": "user.raw",
         "size": 10
      }
    }
  }
}

我收到以下错误 我收到以下错误

Result window is too large, from + size must be less than or equal to: [10000] but was [10250]

如何重新定义我的查询以获得我正在寻找的确切结果。我不知道我哪里出错了。

提前致谢。

2 个答案:

答案 0 :(得分:2)

不是这个size是要查找的,而是查询根目录的那个:

{
  "size": 10250,
  "aggs": {
    "group_by_user": {
      "terms": {
        "field": "user.raw",
         "size": 10
      }
    }
  }
}

错误消息是关于那个。检查您的查询,以及可能的?size=10250...形式下的任何查询参数。

答案 1 :(得分:0)

文档中是否有称为大小的字段?因为如果不是这样,你不会使用/ size。如果确实有一个名为size的字段被映射为数字,我看不出这个查询应该不起作用的任何原因,默认情况下仍应提供10个结果。

无论如何使用from / size的正确方法是

{
  "from": 0, "size": 10,
  "aggs": {
    "group_by_user": {
      "terms": {
        "field": "user.raw",
      }
    }
  }
}

这将给你10个结果,即。结果为0,大小为10