我正在尝试在索引中的文档的多个字段上运行Elasticsearch术语聚合 . 每个文档都包含多个带标签的字段,可以使用自定义标签分析器提取 . 目标是找到系统中最常见的主题标签 .

Elasticsearch documentation中所述,无法在文档的多个字段上运行术语聚合 . 因此我试图使用 copy_to 字段 . 现在的问题是,如果文档在多个字段中包含相同的#标签,则应该多次计算该术语 . 默认术语聚合不是这种情况:

Given Mapping:

{
  "properties": {
  "field_one": {
    "type": "string",
    "copy_to": "hashtags"
  },
  "field_two": {
    "type": "string",
    "copy_to": "hashtags"
  }
}

Given Document:

{
  "field_one": "Hello #World",
  "field_two": "One #World",
}

聚合将返回单个桶 {"key": "#World", "doc_count": 1} . 我需要的是一个桶 {"key": "#World", "doc_count": 2} .