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