null_value(空值)

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

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

  1. curl -XPUT 'localhost:9200/my_index?pretty' -H 'Content-Type: application/json' -d'
  2. {
  3. "mappings": {
  4. "my_type": {
  5. "properties": {
  6. "status_code": {
  7. "type": "keyword",
  8. "null_value": "NULL" #1
  9. }
  10. }
  11. }
  12. }
  13. }
  14. '
  15. curl -XPUT 'localhost:9200/my_index/my_type/1?pretty' -H 'Content-Type: application/json' -d'
  16. {
  17. "status_code": null
  18. }
  19. '
  20. curl -XPUT 'localhost:9200/my_index/my_type/2?pretty' -H 'Content-Type: application/json' -d'
  21. {
  22. "status_code": [] #2
  23. }
  24. '
  25. curl -XGET 'localhost:9200/my_index/_search?pretty' -H 'Content-Type: application/json' -d'
  26. {
  27. "query": {
  28. "term": {
  29. "status_code": "NULL" #3
  30. }
  31. }
  32. }
  33. '

| 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(修改该链接为官网对应的链接)

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

贡献者 : 郭峰ApacheCNApache中文网