我有一张Map,像这样
{
"properties": {
"id": {
"type": "keyword"
},
"name": {
"type": "keyword"
}
}
}
关于name
字段,在我的原始数据中name
可以是空的""
.我有两个选择把doc放到ES:
{
"id" : 6 ,
"name" : ""
}
或
{
"id" : 6 ,
"name" : null
}
我不需要搜索像name ==“”或name!=“”或name == null或name!= null这样的数据。
我发现挂载empty values
会在其他地方导致性能问题。而且发现null value
不会被索引和搜索。所以我想把空字段。
我的用例有什么不同吗?
2条答案
按热度按时间oxcyiej71#
对于
exists
查询,具有空""
字符串值的字段将产生true,这意味着即使您的值实际上不包含值,对于Elasticsearch,它也包含值。告诉ES您的字段不包含值的唯一方法是赋值null。
oyjwcjzk2#
空字符串是长度为零的字符串示例,而空字符串则根本没有值。