elasticsearch - 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
.
前 csv 上传文档
John, Seattle, null
在上传期间,logstash 将 date 的值读取为"null"
( null with quotes
) 并且上传到 elasticsearch 失败,因为它不接受"null"
作为 date 的有效输入。我的问题是从logstash上传时如何让elasticsearch接受日期null
值( )?null without quotes
解决方案
不要将其设置为null
(作为 csv 文件数据中的字符串)。将其设置为无/无值(即对于任何不存在该值的此类字段,您的 csv 文件可以有,,,
空白值。
在您的情况下,例如:设置如下:
John,Seattle,
Shenzi,Denver,2020-05-11
对于第一行,当 logstash 将读取 csv 文件时(例如:如果您input { stdin{} }
在 logstash 的 conf 文件中,那么您将cat somefile.csv | logstash -f <logstash.conf>
)它将第三列值视为 '' (将其转换为 ES 索引作为 key=val 对喜欢:date: null
免费)
推荐阅读
- swift - 预期返回“双”的函数中缺少返回 | 该怎么办?
- sql - tSQLt 应用 NOT NULL 约束
- python-3.x - 在在线编译器中运行良好,但未在终端中运行。PYTHON
- logging - Java - 记录器输出到 Jenkins 日志
- r - 从共享驱动器呈现 rmarkdown 时出现问题
- jakarta-ee - @Resource 注入在 JAX-RS 中没有发生
- mysql - Sum 列,在满足某个值时进行不同的计数
- python - Python Tkinter 按钮无效语法错误
- kubernetes - k8s - Pod 重启时间
- haskell - 将字符串列表解析为 Int