我正在尝试在索引中的文档的多个字段上运行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}
.