Elasticsearch——Boolean字段类型
程序员文章站
2022-07-09 15:27:03
...
布尔字段接受JSON true和false值,但也可以接受解释为true或false的字符串:
False values |
|
True values |
|
例如:
PUT my-index-000001
{
"mappings": {
"properties": {
"is_published": {
"type": "boolean"
}
}
}
}
POST my-index-000001/_doc/1?refresh
{
"is_published": "true" (1)
}
GET my-index-000001/_search
{
"query": {
"term": {
"is_published": true (2)
}
}
}
(1)用“true”为文档编制索引,该值被解释为true。
(2)搜索JSON为true的文档。
聚合(如terms aggregation)使用1和0作为key,字符串“true”和“false”作为key_as_string。在脚本中使用布尔字段时,返回true和false:
POST my-index-000001/_doc/1?refresh
{
"is_published": true
}
POST my-index-000001/_doc/2?refresh
{
"is_published": false
}
GET my-index-000001/_search
{
"aggs": {
"publish_state": {
"terms": {
"field": "is_published"
}
}
},
"sort": [ "is_published" ],
"fields": [
{"field": "weight"}
],
"runtime_mappings": {
"weight": {
"type": "long",
"script": "emit(doc['is_published'].value ? 10 : 0)"
}
}
}
boolean字段的参数
boolean字段接受以下参数:
boost | 映射字段级查询时间增加。接受浮点数,默认为1.0。 |
doc_values | 该字段是否应该以列跨步方式存储在磁盘上,以便以后可以用于排序、聚合或脚本编写?接受true(默认值)或false。 |
index | 该字段是否可以搜索?接受true(默认值)和false。 |
null_value | 接受上面列出的任何真值或假值。该值将替换任何显式空值。默认为null,这意味着该字段被视为丢失。请注意,如果使用脚本参数,则无法设置此参数。 |
on_script_error | 定义如果脚本参数定义的脚本在索引时抛出错误,应执行的操作。接受失败(默认),这将导致整个文档被拒绝,并继续,这将在文档的_ignored metadata 字段中注册该字段并继续索引。只有同时设置了脚本字段,才能设置此参数。 |
script | 如果设置了此参数,则该字段将为此脚本生成的值编制索引,而不是直接从源读取值。如果在输入文档上为此字段设置了值,则文档将被拒绝,并出现错误。脚本的格式与其运行时等效脚本的格式相同。 |
store | 字段值是否应与_source字段分开存储和检索。接受true或false(默认值)。 |
meta | 关于该字段的元数据。 |
推荐阅读