欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Elasticsearch——Boolean字段类型

程序员文章站 2022-07-09 15:27:03
...

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

False values

false"false""" (empty string)

True values

true"true"

例如:

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

关于该字段的元数据。

上一篇: Solr之简单使用

下一篇: IK 分词器