我正在尝试在索引中的多个文档字段上运行Elasticsearch术语聚合。每个文档都包含多个带标签的字段,可以使用自定义标签分析器提取。目标是找到系统中最常见的主题标签。
如Elasticsearch documentation所述,无法在文档的多个字段上运行术语聚合。因此我试图使用copy_to
字段。现在的问题是,如果文档在多个字段中包含相同的#标签,则应该多次计算该术语。默认术语聚合不是这种情况:
给定映射:
{
"properties": {
"field_one": {
"type": "string",
"copy_to": "hashtags"
},
"field_two": {
"type": "string",
"copy_to": "hashtags"
}
}
鉴于文件:
{
"field_one": "Hello #World",
"field_two": "One #World",
}
聚合将返回单个存储桶{"key": "#World", "doc_count": 1}
。我需要的是一个桶{"key": "#World", "doc_count": 2}
。