我正在尝试使用 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上传时接受null
值(null without quotes
(作为日期?
不要将其设置为null
(作为 csv 文件数据中的字符串(。将其设置为无/无值作为全部(即对于不存在该值的任何此类字段,您的 csv 文件可以有,,,
空白值。
在您的情况下,例如:像这样设置:
John,Seattle,
Shenzi,Denver,2020-05-11
对于第一行,当 logstash 将读取 csv 文件时(例如:如果您在 logstash 的 conf 文件中input { stdin{} }
,那么您将cat somefile.csv | logstash -f <logstash.conf>
(,它会将第 3 列值视为 ''(将其转换为 ES 索引作为 key=val 对,例如:date: null
免费(