Posted at

Elasticsearchでフィールド有無検索

Elasticsearchでは必要の無いフィールドは存在させないでデータ登録できます。

そんなフィールドの有無を検索したいときの検索例です。


指定したフィールドのあるデータの検索

index_nameからfield_nameフィールドが存在するデータの検索をする例

GET index_name/_search

{
"query": {
"exists": {
"field": "field_name"
}
}
}


指定したフィールドの無いデータの検索

index_nameからfield_nameフィールが存在しないデータの検索をする例

GET index_name/_search

{
"query": {
"bool": {
"must_not": [
{
"exists": {
"field": "field_name"
}
}
]
}
}
}


いずれかのフィールドのないデータの検索

index_nameからfield_1かfield_2のいずれかのフィールが存在しないデータの検索をする例

GET index_name/_search

{
"query": {
"bool": {
"should": [
{
"bool": {
"must_not": [
{
"exists": {
"field": "field_1"
}
}
]
}
},
{
"bool": {
"must_not": [
{
"exists": {
"field": "field_2"
}
}
]
}
}
]
}
}
}