Elasticsearch NULL和 "" 有什么区别?

mxg2im7a  于 2022-11-02  发布在  ElasticSearch
关注(0)|答案(2)|浏览(193)

我有一张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不会被索引和搜索。所以我想把空字段。
我的用例有什么不同吗?

oxcyiej7

oxcyiej71#

对于exists查询,具有空""字符串值的字段将产生true,这意味着即使您的值实际上不包含值,对于Elasticsearch,它也包含值。
告诉ES您的字段不包含值的唯一方法是赋值null。

oyjwcjzk

oyjwcjzk2#

空字符串是长度为零的字符串示例,而空字符串则根本没有值。

相关问题