如何从650 M数据中得到弹性搜索中特定字段值的出现次数

时间:2014-08-08 11:07:07

标签: elasticsearch elastica

我已经在ES中索引了Twitter数据。 110 M Twitter独特用户个人资料 650 M推文。两者都是单独的索引(索引:twitter-profiles,类型:个人资料),用于推文(索引:twitter-tweets,类型:推文)。

每条推文附有 user_id_str 的个人资料。

我遇到了一个问题,要获得特定用户的出现次数。我使用 Facet / terms和Aggregation / Terms 但两者都给我异常 PartialShardFailureException ,因为有很多数据要进行计算。 我使用了以下查询

{
"aggs" : {
    "userCount" : {
        "terms" : { "field" : "user_id_str" }
    }
  }
}

然后我再试一次。

我使用了第二种方法扫描。在这里,我从配置文件类型中获取配置文件的ID,然后在推文类型中搜索它。它给了我结果但是在 2秒 OOps之后出现了一个结果。有110 M用户意味着我要等几天。

对于这种情况,请给我任何合理的解决方案。

1 个答案:

答案 0 :(得分:-1)

您可以将Cardinality聚合与term filter

结合使用