2016-07-12 67 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