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

时间:2021-06-04 18:45:36

标签: elasticsearch elastic-stack apache-kafka-connect sink

我最近为 Kafka 管道设置了一个 sink-connector Elastic,我注意到一个字段 version 的转换错误,这绝对是一个文本值。 我检查了输入格式架构,我看到它是作为文本发送的,但我没有找到任何用于映射字段的转换。 如果我应该检查以查看仅针对此字段填充字段映射信息的位置,有什么建议吗? 此外,更新所有索引的字段映射 (index-0001, index-0002) 是否可以选择更新 alias name 的映射?

2 个答案:

答案 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 连接进程并且它工作了

相关问题