Elasticsearch 字段映射显示版本字段的日期

Elasticsearch field mapping is showing date for version field

我最近设置了一个 Kafka sink-connectorElastic 管道,我注意到一个字段 version 的转换出错,这绝对是一个文本值。 我检查了输入格式模式,我看到它是作为文本发送的,但我没有找到任何我会放置的字段映射转换。 有什么建议我应该检查一下以查看只为该字段填充字段映射信息的位置吗? 此外,更新所有索引的字段映射(index-0001index-0002) 是否有更新 alias 名称映射的选项?

不,您不能为别名设置映射。 在我看来,您从来没有自己定义映射,而是依赖于 elasticseaech 的动态映射功能。该功能将分析第一个携带新字段和字段值的文档。基于该分析,elastic 将尝试进行有根据的猜测,并在给定索引的映射中为该字段设置映射。

虽然此功能非常方便,但有时却出乎您的意料。这里的最佳实践是摄取少量文档并让弹性完成工作。之后,我们采用自动生成的映射并手动调整它,直到它完美为止。这个映射我们存储在一个索引模板中,当它的名称与模板模式匹配时,它将自动应用到新索引。

对于你的情况,请查看

GET index-1/_mapping

并将其复制到编辑器中以便 fix/complete 映射。

然后像这样将定制映射添加到索引模板:

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"}
}

相关文档如下:

我使用了@ibbexit 建议的映射,然后重新启动了 kafka 连接进程并且它起作用了