我有一个映射,就像这个
{
"properties": {
"id": {
"type": "keyword"
},
"name": {
"type": "keyword"
}
}
}
关于name
字段,在我的原始数据中,name
可以是空的""
。我有两个选择将文档放入ES:
{
"id" : 6 ,
"name" : ""
}
或
{
"id" : 6 ,
"name" : null
}
我不需要搜索像name=="这样的数据"或name!="quot;或name==null或name!=无效的
我看到装载empty values
会在其他地方导致性能问题。并看到null value
不会被索引和搜索。所以我想放一个空字段。
我的用例有什么不同吗?
具有空""
字符串值的字段将为exists
查询生成true,这意味着即使您的值实际上不包含值,对于Elasticsearch,它也包含值。
告诉ES您的字段不包含值的唯一方法是指定null。
空字符串是长度为零的字符串实例,而空字符串根本没有值。