假设在源文档(JSON)中存在两个名为a
和b
的字段,它们的类型为long
,我想通过用下划线连接前面字段的值来构造一个合成字段(例如c
),并将其索引为keyword
。
也就是说,我正在研究一个可以用想象的、部分的Map来支持的特征,如下所示:
...
"a": { "type": "long" },
"b": { "type": "long" },
"c": {
"type": "keyword"
"expression": "${a}_${b}"
},
...
**注意:**上面的Map只是为了示例而创建的。它是无效的!
所以我在寻找的是,elasticsearch中是否有一个特性,一个配方或者提示来支持这个需求。这个字段不需要在_source
中注册,只需要是可搜索的。
1条答案
按热度按时间lx0bsm1f1#
这需要两个步骤--一个
dynamic_mapping
和一个ingest_pipeline
。我假设您的字段
c
是非平凡的,因此您可能希望使用match
在动态模板中匹配该字段,并将keyword
Map分配给它:然后,您可以建立一个管道,将您的
a
和b
连接起来:摄取新文档后(使用激活的管道!)
我们准备好了:
收益率
验证是否也使用
GET synthetic/_mapping
。