2017-08-28 140 views
3

我有多個主題(布爾值),我想對它們進行聚合。例如彈性搜索 - 按主題聚合

topic A -> car AND bike 
topic B -> movies AND entertainment 
topic C -> (X OR Y) AND Z 

我有這樣的布爾人大列表分類在主題的形式。每個布爾值都比上面例子中顯示的要複雜。

不可以我想根據使用聚合的主題來顯示計數,或者我想顯示每個主題的數據每天分解。例如

topic A -> X records 
topic B -> Y records 
topic C -> Z records 

現在我正在向elasticsearch發送個別請求以獲得每個主題的計數,然後將輸出組合到最終數組中。由於涉及的http請求數量很多,此過程花費了很多時間。

建議我實現此目的的有效方法。

注意:主題布爾值是可更改的,所以我們不能將標籤分配給記錄。

+0

是不是可以使用top_hits?我對ES很新,我做了類似於你的問題聽起來像使用top_hits的東西,雖然我可能誤解你的問題。 https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-top-hits-aggregation.html – Birdy

回答

2

您有一個搜索查詢列表,您的目標是獲取(僅)每個查詢的匹配數。

對於只有一個查詢,這將是count API

對於同一個查詢,您應該使用「match_all」進行搜索並使用filters Aggregation。您也可以使用size = 0的Multi Search API