好的想法是十分钱一打,真正无价的是能够实现这些想法的人。

terms结果的并集问题。

Elasticsearch | 作者 thirty | 发布于2017年02月12日 | 阅读数:4366

目前的数据如下(只取了需要计算的字段),大概6000W条.
"_source": {
    "userid": "FCE0DC7306490958762901",
    "tagname": "标签A",
    "createtime": "2017-01-12T15:24:41.541Z",
    "tagscore": 0.1,
  }
<--------------------------------------------------------->
我需要知道一定时间段内,拥有某几个tagname的一群人他们的其他tagname是怎样的。
应该如何操作?
目前得到的buckets全是id下有哪些标签(tagname)
<--------------------------------------------------------->
截取部分结果
"aggregations": {
    "count_key": {
      "value": 267363, (去重ID数 }
    "userid": {
      "doc_count_error_upper_bound": 12995,
      "sum_other_doc_count": 7785830,
      "buckets": [
        {
          "key": "5168073C084F1F5874A1BF",(去重的ID)
          "doc_count": 34694,
          "tag": {
            "doc_count_error_upper_bound": 0,
            "sum_other_doc_count": 184,
            "buckets": [(拥有的标签和此ID的tagscore和)
              {
                "key": "TagA",
                "doc_count": 4213,
                "tagScoreSum": {
                  "value": 421.3000062778592
                }
              },
              {
                "key": "TagB",
                "doc_count": 4213,
                "tagScoreSum": {
                  "value": 421.3000062778592
                }
              },
              {
                "key": "TagC",
                "doc_count": 4213,
                "tagScoreSum": {
                  "value": 421.3000062778592
                }
              }.....
<--------------------------------------------------------->
我现在想得到的结果,这些ID下的标签去重结果的集并(也需要tagscore和),如何操作?
客户端操作是不行的,因为userid的结果集太大。
已邀请:

thirty

赞同来自:

没有人碰到过这个问题嘛?

thirty

赞同来自:

貌似目前没有好的办法。
最终使用nested变相不精确的解决了此问题

要回复问题请先登录注册