Elasticsearch - 匹配字符串或空值

ste*_*ldo 3 elasticsearch

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

谢谢.

Mat*_*erg 6

您可以使用丢失的过滤器来实现此目的.例如:

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"
                     }
                  }
               ]
            }
         }
      }
   }
}
Run Code Online (Sandbox Code Playgroud)