Boolean

布尔字段接受JSON truefalse值,但也可以接受被解释为truefalse的字符串和数字:

| False值 | false"false""off""no""0"""00.0 | | True值 | 任何非false值 |

5.1.0中弃用。 虽然Elasticsearch目前在索引时间内接受上述值。 不建议使用这些伪布尔值搜索布尔域。 请改用“true”或“false”。

在5.3.0中弃用。 任何非false,“false”,true和“true”的值已被弃用。

例如:

PUT my_index
{
  "mappings": {
    "my_type": {
      "properties": {
        "is_published": {
          "type": "boolean"
        }
      }
    }
  }
}

POST my_index/my_type/1
{
  "is_published": "true" #1
}

GET my_index/_search
{
  "query": {
    "term": {
      "is_published": true #2
    }
  }
}

| 1 | Indexing a document with "true", which is interpreted as true. | | 2 | Searching for documents with a JSON true. |

聚合类似 terms aggregation(术语聚合)使用1和0的键,以及key_as_string的字符串“true”和“false”。 在脚本中使用布尔字段,返回1和0:

POST my_index/my_type/1
{
  "is_published": true
}

POST my_index/my_type/2
{
  "is_published": false
}

GET my_index/_search
{
  "aggs": {
    "publish_state": {
      "terms": {
        "field": "is_published"
      }
    }
  },
  "script_fields": {
    "is_published": {
      "script": {
        "lang": "painless",
        "inline": "doc['is_published'].value"
      }
    }
  }
}

Boolean字段的参数

boolean字段接受以下参数

| boost | 映射字段级查询时间提升。 接受一个浮点数,默认为1.0。 | | doc_values | 该字段是否应该以多列的方式存储在磁盘上,以便以后可以将其用于排序,聚合或脚本? 接受true(默认)或false。 | | index | 应该可以搜索该字段吗? 接受true(默认)和false。 | | null_value | 接受上面列出的任何真实或虚假的价值。 该值替换任何显式空值。 默认为null,这意味着该字段被视为丢失。 | | store | 字段值是否应与_sourcefield分开存储和检索。 接受truefalse(默认)。 |