本文主要介绍一下关于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
- 有关该字段的元数据