가끔 특정 필드에 존재하는 값이 있는지 확인할 경우 exists 쿼리를 사용하는데, 이것도 정리해뒀는지 알았는데 아니였네.. ㅠㅠ
쿼리문은 무척 심플하다!
{
"query": {
"bool": {
"must": [
{
"exists": {
"field": "{필드명}"
}
}
]
}
}
}
이때, 존재하지 않는 필드명을 검색하려면, must
→ must_not
으로 변경해주면 된다.
그런데, nested type인 필드도 동일하게 검색하려고 했더니 안되는 게 아닌가.. ㅠㅠ nested type의 경우 쿼리문은 아래와 같다.
※ nested type
{
"query": {
"nested": {
"path": "{필드명}",
"query": {
"bool": {
"must": [
{
"exists": {
"field": "{필드명}" 또는 "{필드명.nested type object 안에 필드명}"
}
}
]
}
}
}
}
}