Elasticsearch:按桶密钥合并聚合结果

时间:2016-10-04 10:39:00

标签: elasticsearch kibana kibana-4

我在Elasticsearch中编制了索引实体,这些实体出现在我的文档中。实体的映射如下所示:

"Entities": {
        "properties": {
          "EntFrequency": {
            "type": "long"
          },
          "EntId": {
            "type": "long"
          },
          "EntType": {
            "type": "string",
            "analyzer": "english",
            "fields": {
              "raw": {
                "type": "string",
                "index": "not_analyzed"
              }
            }
          },
          "Entname": {
            "type": "string",
            "analyzer": "english",
            "fields": {
              "raw": {
                "type": "string",
                "index": "not_analyzed"
              }
            }
          }
        }
      },
 [...]

此外,我使用此聚合查询来确定最常发生的实体:

GET cable/document/_search
{
  "size" :0,
  "query": { 
    "match_all": {}
  },
  "aggs" : { 
      "entities_agg" : { 
          "terms" : { 
            "field" : "Entities.EntId"              
            }
          }
      }
   }
}

Response

"buckets": [
    {
      "key": 323644,
      "doc_count": 231038
    },
[...]

然而,其中一些实体提到的是同一个实体,例如: "美国"和#34;美国"我知道他们的ids。 如何在ES中合并存储桶和这些重复项的计数?

我无法使用客户端解决方案,因为有太多实体并且检索所有实体并且合并对于我的应用程序可能太慢了。有关重复的知识是通过运行时获取的。因此,我不能将这些知识用于我的ES索引的初始创建。

感谢您的帮助和评论!

0 个答案:

没有答案