本文主要介绍一下关于ES的boolean类型,希望对大家理解和使用ES有帮助。
Boolean Field 类型介绍:
Boolea n Field是接受JSON true或者false的值,也接受可以被转为true或者false的字符串
- false值:false,"false",""
- true值:true,"true"
例子:
代码语言:javascript复制curl -X PUT "localhost:9200/my-index-000001?pretty" -H 'Content-Type: application/json' -d'
{
"mappings": {
"properties": {
"is_published": {
"type": "boolean"
}
}
}
}
'代码语言:javascript复制curl -X POST "localhost:9200/my-index-000001/_doc/1?pretty" -H 'Content-Type: application/json' -d'
{
"is_published": "true"
}
'代码语言:javascript复制curl -X GET "localhost:9200/my-index-000001/_search?pretty" -H 'Content-Type: application/json' -d'
{
"query": {
"term": {
"is_published": true
}
}
}
'通过上面的例子可以看出,创建了一个名为my-index-000001的文档,映射关系中有一个type为boolean的field为is_published。
下面是一个term查询,匹配is_published为true的文档。
curl -X POST "localhost:9200/my-index-000001/_doc/1?pretty" -H 'Content-Type: application/json' -d'
{
"is_published": true
}
'代码语言:javascript复制curl -X POST "localhost:9200/my-index-000001/_doc/2?pretty" -H 'Content-Type: application/json' -d'
{
"is_published": false
}
'代码语言:javascript复制curl -X GET "localhost:9200/my-index-000001/_search?pretty" -H 'Content-Type: application/json' -d'
{
"aggs": {
"publish_state": {
"terms": {
"field": "is_published"
}
}
},
"script_fields": {
"is_published": {
"script": {
"lang": "painless",
"source": "doc[u0027is_publishedu0027].value"
}
}
}
}
'boolean Field的参数列表
下面是所列的参数列表是boolean field所接受的:
- boost
- 映射字段级查询时间的增加。接受浮点数,默认为1.0。
- doc_values
- 该字段是否应该以跨步的方式存储在磁盘上,以便以后可以用于排序,聚合或编写脚本?接受true(默认)或false。
- index
- 该field是否应该被索引搜索,接受的值为true或者false
- null_value
- 可以接受该field为null值,接受的参数为true或者false。
- store
- 是否应与_source字段分开存储和检索字段值。接受的值为true或者false
- meta
- 有关该字段的元数据


