elasticsearch - 创建一个连接其他字段的关键字字段
问题描述
我有一个包含 3 个字段映射的索引。假设和。f1
_
我想要一个新的关键字字段,其中的值串联,并且能够通过它进行聚合以避免在检查搜索结果时出现大量嵌套循环。f2
f3
f1
f2
f3
我已经看到这可以通过source transformation来实现,但是从 elastic v5 开始,这个特性被删除了。
使用的 ElasticSearch 版本:6.5
问:如何在 ElasticSearch v 6.5 中归档串联?
解决方案
在 ES 5 之前确实有源转换,但是从 ES 5 开始,现在有一个更强大的功能,称为摄取节点,它可以让您轻松实现所需的功能:
首先,使用set
处理器定义摄取管道,该处理器将帮助您将三个字段连接为一个:
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
索引第一个文档之前使用适当的映射创建索引即可。
推荐阅读
- c++ - 如何将整数(每行两个)从c ++中的文本文件中读取到单独的数组中
- linux - libjpeg 自定义错误处理 - 无法覆盖消息输出 - ubunu
- java - Java Guice 命名绑定与其他模块提供的对象
- memory-management - 在 RISC-V 上执行动态生成的代码
- c# - SqlDateTime 溢出。在 C# 中使用 Datetime 作为参数进行 SQL 查询时
- python - 转置后创建索引并并排合并两个数据帧
- python - 如何在 Python 中对数据帧的字符串进行哈希处理?
- reactjs - React-Native 使用效果清理
- azure - 如何将 Azure 自托管集成运行时连接到数据工厂专用终结点?
- .htaccess - htaccess 从子文件夹中删除索引