我最近为 Kafka
管道设置了一个 sink-connector
Elastic
,我注意到一个字段 version
的转换错误,这绝对是一个文本值。
我检查了输入格式架构,我看到它是作为文本发送的,但我没有找到任何用于映射字段的转换。
如果我应该检查以查看仅针对此字段填充字段映射信息的位置,有什么建议吗?
此外,更新所有索引的字段映射 (index-0001
, index-0002
)
是否可以选择更新 alias
name 的映射?
答案 0 :(得分:1)
不,您不能为别名设置映射。 在我看来,您从未自己定义映射,而是依赖于 elasticseaech 的动态映射功能。此功能将分析带有新字段和字段值的第一个文档。基于该分析,elastic 将尝试有根据的猜测,并在给定索引的此映射中为该字段设置映射。
虽然此功能非常方便,但有时并非您所期望的。此处的最佳实践是摄取少量文档并让 elastic 完成工作。之后,我们将采用自动生成的映射并手动调整它,直到它完美为止。我们将这个映射存储在一个索引模板中,当它的名称与模板模式匹配时,它将自动应用到新索引。
在你的情况下,看看
GET index-1/_mapping
并将其复制到编辑器中以修复/完成映射。
然后将定制映射添加到索引模板中,如下所示:
PUT _index_template/template_1
{
"index_patterns": ["index-*"],
"template": {
"mappings": {
"_source": {
"enabled": true
},
"properties": {
"version": {
"type": "keyword"
},
...more fields...
下一个索引将有一个启动器映射,您还可以使用
将错误的映射索引重新索引(然后删除)为新索引POST _reindex
{
"source" : {"index" : "index-1"},
"dest" : { "index" : "index-1_new"}
}
以下是相关文档:
答案 1 :(得分:0)
我使用了来自@ibbexit 的映射建议,然后重新启动了 kafka 连接进程并且它工作了