我有一个索引,其中包含3个字段的映射。假设f1
,f2
和f3
。
我希望具有f1
,f2
和f3
的值的串联的新关键字字段能够通过其进行聚合,以避免嵌套过多在检查搜索结果时循环播放。
我已经看到,可以通过源转换实现此功能,但是由于弹性v5,此功能已删除。
使用的ElasticSearch版本:6.5
问:如何在ElasticSearch v 6.5中归档串联?
答案 0 :(得分:0)
在ES 5之前确实存在源转换,但是从ES 5开始,现在有一个更强大的功能称为ingest nodes,它将使您轻松实现所需的功能:
首先,使用set
processor定义一个接收管道,这将帮助您将三个字段连接为一个字段:
PUT _ingest/pipeline/concat
{
"processors": [
{
"set": {
"field": "field4",
"value": "{{field1}} {{field2}} {{field3}}"
}
}
]
}
然后您可以使用该管道为文档建立索引:
PUT index/doc/1?pipeline=concat
{
"field1": "1",
"field2": "2",
"field3": "3"
}
索引文档将如下所示:
{
"field1": "1",
"field2": "2",
"field3": "3",
"field4": "1 2 3"
}
在索引第一个文档之前,请确保为field4
创建具有适当映射的索引。