原英文版地址: https://www.elastic.co/guide/en/elasticsearch/reference/7.7/boolean.html, 原文档版权归 www.elastic.co 所有
本地英文版地址: ../en/boolean.html

boolean(布尔)数据类型

布尔字段接受JSON truefalse值,但也可以接受被解释为 true 或 false 的字符串:

false 值

false, "false", "" (空字符串)

true 值

true, "true"

例如:

PUT my_index
{
  "mappings": {
    "properties": {
      "is_published": {
        "type": "boolean"
      }
    }
  }
}

POST my_index/_doc/1
{
  "is_published": "true" 
}

GET my_index/_search
{
  "query": {
    "term": {
      "is_published": true 
    }
  }
}

"true"对文档进行索引,这被解释为true

搜索值为JSON true的文档。

terms聚合这样的聚合使用10作为键,使用字符串"true""false"作为key_as_string。 布尔字段在脚本中使用时,返回10

POST my_index/_doc/1
{
  "is_published": true
}

POST my_index/_doc/2
{
  "is_published": false
}

GET my_index/_search
{
  "aggs": {
    "publish_state": {
      "terms": {
        "field": "is_published"
      }
    }
  },
  "script_fields": {
    "is_published": {
      "script": {
        "lang": "painless",
        "source": "doc['is_published'].value"
      }
    }
  }
}

boolean字段的参数

boolean字段接受以下参数:

boost

映射字段级查询时 提升(boost)。接受一个浮点数,默认值为 1.0

doc_values

是否应该以列跨度(column-stride)的方式将字段存储在磁盘上,以便以后用于排序、聚合或编写脚本? 接受true (默认)和false

index

字段是否可以搜索?接受true(默认)和false

null_value

接受上面列出的任何 true 或 false 值。 该值将替换任何显式的null值。 默认为null,这意味着该字段被视为缺失。

store

字段值是否应该与_source字段分开存储和检索。 接受truefalse(默认)。

meta

与该字段有关的元信息。