# null_value（空值）

**null **值不能被索引或者搜索.当一个字段被设置成 **null**（或者一个空数组,或者值全为 **null **的数组）时， 该字段将被视为没有值。

**null_value **参数允许你用一个特殊的值替换一个显示的 **null **值， 以确保这个字段能被索引和搜索。例如：

```
curl -XPUT 'localhost:9200/my_index?pretty' -H 'Content-Type: application/json' -d'
{
  "mappings": {
    "my_type": {
      "properties": {
        "status_code": {
          "type":       "keyword",
          "null_value": "NULL" #1
        }
      }
    }
  }
}
'
curl -XPUT 'localhost:9200/my_index/my_type/1?pretty' -H 'Content-Type: application/json' -d'
{
  "status_code": null
}
'
curl -XPUT 'localhost:9200/my_index/my_type/2?pretty' -H 'Content-Type: application/json' -d'
{
  "status_code": [] #2
}
'
curl -XGET 'localhost:9200/my_index/_search?pretty' -H 'Content-Type: application/json' -d'
{
  "query": {
    "term": {
      "status_code": "NULL" #3
    }
  }
}
'

```

| 1 | 用 **NULL** 代替显示的 **null** 值。 |
| 2 | 没有显示的包含 **null** 的空数组，不会被 **null_value** 替换。 |
| 3 | 搜索 **NULL** 将返回文档1，而不会返回文档2。 |

重点

**null_value** 必须设置成相同类型的参数。例如，一个 **long** 型的字段不能被设置成 **string** 类型的 **null_value**。

原文链接 : [https://www.elastic.co/guide/en/elasticsearch/reference/5.3/null-value.html](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/null-value.html)（修改该链接为官网对应的链接）

译文链接 : [http://www.apache.wiki/pages/viewpage.action?pageId=9406521](http://www.apache.wiki/pages/viewpage.action?pageId=9406521)（修改该链接为 **ApacheCN** 对应的译文链接）

贡献者 : [郭峰](/display/~guofeng)，[ApacheCN](/display/~apachecn)，[Apache中文网](/display/~apachechina)