【问题标题】:Unable to create ES mapping date field无法创建 ES 映射日期字段
【发布时间】:2020-11-24 07:25:24
【问题描述】:

我有一张表,其中一列是 UDT

CREATE TYPE baseinfo (
    head_commission_nr text,
    internal_source text,
    internal_changed date,
);

表的该部分的 ES 映射:

    "internal_changed": {
      "type": "date",
      "cql_collection": "singleton"
    }

索引失败:

"type": "mapper_parsing_exception", "reason": "执行失败 查询:空:日期类型的字段“internal_changed”不匹配 类型时间戳”,“caused_by”:{“type”:“invalid_request_exception”, “原因”:“日期类型的字段“internal_changed”不匹配 输入时间戳”}

我做错了什么?

【问题讨论】:

  • 请分享 UDT 中日期格式的示例记录。显然 UDT 和 elasticsearch 之间的日期格式是不同的。你在用logstash吗?
  • 示例数据:{ head_commission_nr : '90021', internal_source : 'C16', internal_changed : '1996-08-01' }。我正在使用 elassandra。
  • 如何索引数据?
  • PUT 10.164.0.53:9200/deviceinfo { "settings" : { "keyspace" : "iot_data" }, "mappings" : { "deviceinfo": { "properties": { "baseinfo": { "type" :“嵌套”,“cql_collection”:“singleton”,“cql_udt_name”:“baseinfo”,“properties”:{“internal_changed”:{“type”:“date”,“cql_collection”:“singleton”}}}} } } }

标签: elasticsearch elassandra


【解决方案1】:

删除已创建的索引并更改映射如下:

 "internal_changed": {
      "type": "date",
      "format": "yyyy-MM-dd ",
      "cql_collection": "singleton"
    }
    

【讨论】:

  • 已经试过了,这会返回与上面相同的错误:“caused_by”:{“type”:“invalid_request_exception”,“reason”:“字段\“internal_changed\”与类型日期不匹配输入时间戳”}
  • @AlexTbk 你是通过 _mapping 还是 _template 检查?
  • 我正在发送确切的 PUT 查询,就像我对上述问题的最后评论一样,并添加了“格式”字段
  • 请检查映射是否应用?通过 XGET 10.164.0.53:9200/deviceinfo/_mapping
  • 未应用映射。错误的请求。我现在通过将字段转换为 Long - Date().getMillisSinceEpoch() 来帮助自己
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-19
  • 1970-01-01
  • 2020-04-26
  • 2021-03-26
  • 2021-08-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多