我正在尝试使用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
)?
答案 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
)