Elasticsearch - 匹配字符串或空值

时间:2014-03-25 12:59:05

标签: elasticsearch

我必须检查字段是否与特定文本匹配或是否为空。 有可能吗?

谢谢。

1 个答案:

答案 0 :(得分:6)

您可以使用missing过滤器来实现此目的。例如:

POST /my_index/items
{
    "field1": "value1"
}

POST /my_index/items
{
    "field1": "value2"
}

POST /my_index/items
{
    "field1": ""
}

POST /my_index/_refresh

POST /my_index/_search
{
   "query": {
      "filtered": {
         "query": {
            "match_all": {}
         },
         "filter": {
            "or": {
               "filters": [
                  {
                     "term": {
                        "field1": "value1"
                     }
                  },
                  {
                     "missing": {
                        "field": "field1"
                     }
                  }
               ]
            }
         }
      }
   }
}