在elasticsearch上查找具有布尔值的文档

时间:2016-04-13 13:21:16

标签: elasticsearch

我是Elasticsearch的新手。我有一个具有布尔字段的映射:

{
   ...

   "bool_field": {
      "type": "boolean"
   },
   ...
}

如何在不指定字段名称的情况下查找布尔值的文档? 我尝试了以下其中一种,但没有结果:

{
  "query": {
    "match_all": {}
  },
  "filter": {
    "query": {
      "query_string": {
        "query": "true"
      }
    }
  }
}

谢谢!

1 个答案:

答案 0 :(得分:2)

默认情况下,这并不容易,因为boolean fields are not include_in_all (the _all field is used by default by query_string)。这解释了为什么您的查询不起作用。

但是,您可以使用copy_to创建自己的custom _all field并在query_string中使用它。

这样的事情:

    "bool_field": {
      "type": "boolean",
      "copy_to": "_all_booleans"
    }

然后

"query_string": {
  "default_field": "_all_booleans", 
  "query": "true"
}

"query_string": {
  "query": "_all_booleans:true"
}