布尔字段类型
1.0 版引入
布尔字段类型接受 true
或 false
值,或 "true"
或 "false"
字符串。您也可以传入空字符串 (""
) 来代替 false
值。
示例
创建映射,其中 a、b 和 c 是布尔字段
PUT testindex
{
"mappings" : {
"properties" : {
"a" : {
"type" : "boolean"
},
"b" : {
"type" : "boolean"
},
"c" : {
"type" : "boolean"
}
}
}
}
索引包含布尔值的文档
PUT testindex/_doc/1
{
"a" : true,
"b" : "true",
"c" : ""
}
结果是,a
和 b
将设置为 true
,而 c
将设置为 false
。
搜索所有 c
为 false 的文档
GET testindex/_search
{
"query": {
"term" : {
"c" : false
}
}
}
参数
下表列出了布尔字段类型接受的参数。所有参数都是可选的。
参数 | 描述 |
---|---|
提升 | 一个浮点值,指定此字段对相关性得分的权重。高于 1.0 的值会增加字段的相关性。介于 0.0 和 1.0 之间的值会降低字段的相关性。默认值为 1.0。 |
doc_values | 一个布尔值,指定字段是否应存储在磁盘上,以便用于聚合、排序或脚本编写。默认值为 true 。 |
index | 一个布尔值,指定字段是否可搜索。默认值为 true 。 |
meta | 接受此字段的元数据。 |
null_value | 用于代替 null 的值。必须与字段类型相同。如果未指定此参数,则当其值为 null 时,该字段将被视为缺失。默认值为 null 。 |
存储 | 一个布尔值,指定字段值是否应存储且可与 _source 字段单独检索。默认值为 false 。 |
聚合和脚本中的布尔值
在布尔字段上的聚合中,key
返回数值(true
为 1,false
为 0),key_as_string
返回字符串("true"
或 "false"
)。脚本对布尔值返回 true
和 false
。
示例
对字段 a
运行词条聚合查询
GET testindex/_search
{
"aggs": {
"agg1": {
"terms": {
"field": "a"
}
}
},
"script_fields": {
"a": {
"script": {
"lang": "painless",
"source": "doc['a'].value"
}
}
}
}
脚本返回 a
的值为 true
,key
返回 a
的值为 1
,key_as_string
返回 a
的值为 "true"
{
"took" : 1133,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 1,
"relation" : "eq"
},
"max_score" : 1.0,
"hits" : [
{
"_index" : "testindex",
"_type" : "_doc",
"_id" : "1",
"_score" : 1.0,
"fields" : {
"a" : [
true
]
}
}
]
},
"aggregations" : {
"agg1" : {
"doc_count_error_upper_bound" : 0,
"sum_other_doc_count" : 0,
"buckets" : [
{
"key" : 1,
"key_as_string" : "true",
"doc_count" : 1
}
]
}
}
}