我正在運行一個彈性搜索過濾器, (約1000萬點擊)的結果。我的from+size
max是默認值(10,000次點擊)。我想基於一個字段進行聚合,並在所有桶中返回所有過濾器的匹配(而不僅僅是計數)。ES:Bucket agg + top_hits + scroll?如何在桶中返回所有命中(超過`size + from` max)?
我知道我可以使用top_hits
來獲取每個存儲桶中的實際文檔(ElasticSearch: retriving documents belonging to buckets),但我認爲我需要滾動以獲取全部文檔(以獲得超過前10000個點擊次數)。我可以滾動和聚合嗎?當我使用聚合運行時,scroll
api失敗。
目前,我有兩個解決方案似乎都沒有那麼大:
運行多個過濾器的查詢,表示各1桶(然後我不需要使用聚合+ top_hits命令)。 (對於我的應用程序太慢)
運行1個大的過濾器查詢,並且不聚集,但使用滾動api獲取所有匹配。然後,我將把它們放在我的主機上的相應桶中。 (不錯,但好像ES設置用於聚集到這些水桶給我,有更多的資源來完成這項工作)
是否有更好的方法來解決這個問題?
這似乎與此有關:(Paging elasticsearch aggregation results)雖然滾動API沒有提到(除非這就是他們所說的分頁?)
每個存儲桶中是否有超過10,000個文檔?或者你有超過10,000個桶,並且想要翻閱這些桶? – jay
某些桶的命中次數超過10,000次。現在我正在看〜500桶。我的總點擊量是1600萬, – travelingbones