ElasticSearch Logstash上传日期的空值

时间:2018-08-23 18:52:18

标签: elasticsearch logstash

我正在尝试使用logstash(6.3.1)将文档批量上传到elasticsearch(6.3)中。日期中文档中的字段之一。 以下是我的映射类型 `

{
  "mappings": {
      "users" : {
        "properties" : {
            "name" : { "type" : "text" },
            "location" : { "type" : "geo_point"},
            "date": {
                "type": "date",
                "format": "yyyy-MM-dd"
            }

   }
  }
}

如果没有可用的日期,则将其设置为null

Ex csv上载文档

John, Seattle, null

在上载期间,logstash将日期值读取为"null"null with quotes),并且上载到elasticsearch失败,因为它不接受"null"作为迄今为止的有效输入。 我的问题是从logstash上载时,如何让Elasticsearch接受日期的null值(null without quotes)?

1 个答案:

答案 0 :(得分:0)

请勿将其设置为null(作为csv文件数据中的字符串)。将其设置为全无/无值(即,对于不存在该值的任何此类字段,您的csv文件可以具有,,,个空白值。

以您的情况为例,例如:像这样设置:

John,Seattle,
Shenzi,Denver,2020-05-11

对于第一行,当logstash将读取csv文件时(例如:如果logstash的conf文件中有input { stdin{} },那么您将cat somefile.csv | logstash -f <logstash.conf>),它将第三列的值视为“ (将其作为key = val对免费转换为ES索引,例如:date: null