2016-07-12 32 views
1
的结果

我写了一个elasticsearch查询得到的只有排名前10位的结果降序排列如何限制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] 

如何更改我的查询以获取我正在查找的确切结果。我不知道我哪里错了。

在此先感谢。

+0

那是你的完整的查询? –

+0

我希望如此。我不确定是否需要在其中添加更多过滤条件或条款 – Mangoski

回答

2

不是这个size是一个寻找,但一个在查询根:

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

该错误消息是关于一个。请检查您的查询以及潜在的任何查询参数,格式为?size=10250...

0

是否有您的一份名为大小字段?因为如果不是这样,你不能从/ size中使用。如果确实有一个名为大小的字段映射为数字,我没有看到此查询不应该起作用的任何原因,但它仍应默认提供10个结果。

反正从/尺寸使用的正确方法是

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

这会给你10分的结果,即。从0结果的大小为10

+0

我已应用了您的概念,但出现以下错误。 '嵌套:QueryPhaseExecutionException [结果窗口太大,从+大小必须小于或等于:[10000],但是[10250]。请参阅滚动API以获取更高效的请求大型数据集的方法。此限制可通过更改[index.max_result_window]索引级别参数来设置。 }' – Mangoski

+0

我的文档中没有像'size'这样的字段。我认为这是一个内置的领域。 – Mangoski

+0

我的要求是,如果我有10000k事件,我只需要索引中所有事件中的前10个事件。 – Mangoski