Find empty strings in elasticsearch
elasticsearch
Solution
Or another way to do the same thing more efficiently is to use the `exists` filter:
"exists" : {
"field" : "advs.status"
}
Both are valid, but this one is better :)
Problem
I'm trying to `_search` documents that has some specific value in the field. ``` { "query": { "bool": { "must": [ {"field": {"advs.status": "warn"}} ] } } } ``` That works find. But when I'm trying to find documents that has empty string in that field, I get this error: ``` ParseException[Cannot parse '' ... ``` and then - long list of what was expected instead of empty string. I try this query: ``` { "query": { "bool": { "must": [ {"term": {"advs.status": ""}} ] } } } ``` It doesn't fails but finds nothing. It works for non empty strings instead. How am I supposed to do this? My mapping for this type looks exactly like this: ``` { "reports": { "dynamic": "false", "_ttl": { "enabled": true, "default": 7776000000 }, "properties": { "@fields": { "dynamic": "true", "properties": { "upstream_status": { "type": "string" } } }, "advs": { "properties": { "status": { "type": "string", "store": "yes" } } }, "advs.status": { "type": "string", "store": "yes" } } } } ```