null_value

A null value cannot be indexed or searched. When a field is set to null, (or an empty array or an array of null values) it is treated as though that field has no values.

The null_value parameter allows you to replace explicit null values with the specified value so that it can be indexed and searched. For instance:

  1. PUT my-index-000001
  2. {
  3. "mappings": {
  4. "properties": {
  5. "status_code": {
  6. "type": "keyword",
  7. "null_value": "NULL"
  8. }
  9. }
  10. }
  11. }
  12. PUT my-index-000001/_doc/1
  13. {
  14. "status_code": null
  15. }
  16. PUT my-index-000001/_doc/2
  17. {
  18. "status_code": []
  19. }
  20. GET my-index-000001/_search
  21. {
  22. "query": {
  23. "term": {
  24. "status_code": "NULL"
  25. }
  26. }
  27. }

Replace explicit null values with the term NULL.

An empty array does not contain an explicit null, and so won’t be replaced with the null_value.

A query for NULL returns document 1, but not document 2.

The null_value needs to be the same data type as the field. For instance, a long field cannot have a string null_value.

The null_value only influences how data is indexed, it doesn’t modify the _source document.