繁体   English   中英

Elasticsearch 索引时间戳字段失败

[英]Elasticsearch indexing timestamp-field fails

我无法使用 ElasticSearch(版本 7.10.2)索引时间戳字段,我不明白为什么。

因此,我使用以下映射创建了一个索引。 您可以直接将其复制并粘贴到 Kibana:

PUT /my-dokumente
{
    "mappings" : {
      "properties" : {
        "aufenthalt" : {
          "properties" : {
            "aufnahme" : {
              "properties" : {
                "zeitpunkt" : {
                  "type" : "date",
                  "format": "yyyy-MM-dd HH:mm:ss",
                  "ignore_malformed": true
                }
              }
            },
            "entlassung" : {
              "properties" : {
                "zeitpunkt" : {
                  "type" : "date",
                  "format": "yyyy-MM-dd HH:mm:ss",
                  "ignore_malformed": true
                }
              }
            }
          }
        }
      }
    }
}

然后我尝试索引一个文档:

PUT /my-dokumente/dokumente/1165963
{
    "aufenthalt" : 
    {
        "aufnahme" : 
        {
            "zeitpunkt" : "2019-08-18 15:02:13"
        },
        "entlassung" : 
        {
            "zeitpunkt" : "2019-08-20 10:29:22"
        }
    }
}

现在,我收到此错误:

"mapper [aufenthalt.entlassung.zeitpunkt] cannot be changed from type [date] to [text]

为什么弹性搜索不解析我的日期?

我还尝试了许多不同的映射设置,例如strict_date_hour_minute_second或将时间戳发送为"2019-08-18T15:02:13""2019-08-18T15:02:13Z" ,我也将其转换为纪元毫秒,但我总是得到一些不同的错误消息,例如Cannot update parameter [format] from [strict_date_hour_minute_second] to [strict_date_optional_time||epoch_millis]

所以基本问题就是:如何向 ElasicSearch 发送时间戳值? (使用 Kibana/CURL)。

PS:我没有使用像 Java 高级 Rest 客户端这样的客户端 SDK。 为什么要谈论基本的 Kibana/CURL。

不可能那么复杂。 我错过了什么?

谢谢!

映射类型在 7.x 中被删除。 参考这个官方文档

将文档索引到 Elasticsearch 时,需要在 URL 中添加 _doc

将 URL 修改为PUT /my-dokumente/_doc

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM