我有一个索引映射与两个字符串字段,field1
和field2
,都被声明为copy_to到另一个字段称为all_fields
。 all_fields
被索引为“not_analyzed”。elasticsearch copy_to字段行为不像聚合预期
当我在all_fields
上创建存储桶聚合时,我期待将field1和field2的键连接在一起的不同存储桶。取而代之的是,我使用field1和field2的键未分开的单独桶。
实施例: 映射:在
{
"mappings": {
"myobject": {
"properties": {
"field1": {
"type": "string",
"index": "analyzed",
"copy_to": "all_fields"
},
"field2": {
"type": "string",
"index": "analyzed",
"copy_to": "all_fields"
},
"all_fields": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
}
数据:
{
"field1": "dinner carrot potato broccoli",
"field2": "something here",
}
和
{
"field1": "fish chicken something",
"field2": "dinner",
}
聚合:
{
"aggs": {
"t": {
"terms": {
"field": "all_fields"
}
}
}
}
结果:
...
"aggregations": {
"t": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "dinner",
"doc_count": 1
},
{
"key": "dinner carrot potato broccoli",
"doc_count": 1
},
{
"key": "fish chicken something",
"doc_count": 1
},
{
"key": "something here",
"doc_count": 1
}
]
}
}
我所期待的只有2桶,fish chicken somethingdinner
和dinner carrot potato broccolisomethinghere
我在做什么错?