存在するクエリ
フィールドのインデックスされた値を含むドキュメントを返します。
インデックスされた値がドキュメントのフィールドに存在しない理由はいくつかあります:
- ソースJSONのフィールドが
null
または[]
である - マッピングで
"index" : false
と"doc_values" : false
が設定されている - フィールド値の長さがマッピングの
ignore_above
設定を超えた - フィールド値が不正で、マッピングで
ignore_malformed
が定義されていた
例のリクエスト
Python
resp = client.search(
query={
"exists": {
"field": "user"
}
},
)
print(resp)
Ruby
response = client.search(
body: {
query: {
exists: {
field: 'user'
}
}
}
)
puts response
Go
res, err := es.Search(
es.Search.WithBody(strings.NewReader(`{
"query": {
"exists": {
"field": "user"
}
}
}`)),
es.Search.WithPretty(),
)
fmt.Println(res, err)
Js
const response = await client.search({
query: {
exists: {
field: "user",
},
},
});
console.log(response);
コンソール
GET /_search
{
"query": {
"exists": {
"field": "user"
}
}
}
存在するためのトップレベルパラメータ
field
- (必須、文字列)検索したいフィールドの名前。
JSON値がnull
または[]
の場合、フィールドは存在しないと見なされますが、これらの値はフィールドが存在することを示します:""
や"-"
のような空の文字列null
と他の値(例えば[null, "foo"]
)を含む配列- フィールドマッピングで定義されたカスタム
null-value
ノート
インデックスされた値が欠落しているドキュメントを見つける
フィールドのインデックスされた値が欠落しているドキュメントを見つけるには、must_not
ブールクエリを exists
クエリと共に使用します。
次の検索は、user.id
フィールドのインデックスされた値が欠落しているドキュメントを返します。
Python
resp = client.search(
query={
"bool": {
"must_not": {
"exists": {
"field": "user.id"
}
}
}
},
)
print(resp)
Ruby
response = client.search(
body: {
query: {
bool: {
must_not: {
exists: {
field: 'user.id'
}
}
}
}
}
)
puts response
Js
const response = await client.search({
query: {
bool: {
must_not: {
exists: {
field: "user.id",
},
},
},
},
});
console.log(response);
コンソール
GET /_search
{
"query": {
"bool": {
"must_not": {
"exists": {
"field": "user.id"
}
}
}
}
}