_ignored field
_ignored
フィールドは、ドキュメントがインデックスされたときに無視されたすべてのフィールドの名前をインデックスし、保存します。これは、たとえば、フィールドが不正であり、ignore_malformed
がオンになっている場合、または keyword
フィールドの値がオプションの ignore_above
設定を超えた場合、または index.mapping.total_fields.limit
に達し、index.mapping.total_fields.ignore_dynamic_beyond_limit
が true
に設定されている場合などです。
このフィールドは、term
、terms
、および exists
クエリで検索可能であり、検索ヒットの一部として返されます。
たとえば、以下のクエリは、無視された1つ以上のフィールドを持つすべてのドキュメントに一致します:
Python
resp = client.search(
query={
"exists": {
"field": "_ignored"
}
},
)
print(resp)
Ruby
response = client.search(
body: {
query: {
exists: {
field: '_ignored'
}
}
}
)
puts response
Js
const response = await client.search({
query: {
exists: {
field: "_ignored",
},
},
});
console.log(response);
Console
GET _search
{
"query": {
"exists": {
"field": "_ignored"
}
}
}
同様に、以下のクエリは、インデックス時に @timestamp
フィールドが無視されたすべてのドキュメントを見つけます:
Python
resp = client.search(
query={
"term": {
"_ignored": "@timestamp"
}
},
)
print(resp)
Ruby
response = client.search(
body: {
query: {
term: {
_ignored: '@timestamp'
}
}
}
)
puts response
Js
const response = await client.search({
query: {
term: {
_ignored: "@timestamp",
},
},
});
console.log(response);
Console
GET _search
{
"query": {
"term": {
"_ignored": "@timestamp"
}
}
}
8.15.0以降、_ignored
フィールドは集計もサポートしています。たとえば、以下のクエリは、無視されたすべてのフィールドを見つけます:
Python
resp = client.search(
aggs={
"ignored_fields": {
"terms": {
"field": "_ignored"
}
}
},
)
print(resp)
Ruby
response = client.search(
body: {
aggregations: {
ignored_fields: {
terms: {
field: '_ignored'
}
}
}
}
)
puts response
Js
const response = await client.search({
aggs: {
ignored_fields: {
terms: {
field: "_ignored",
},
},
},
});
console.log(response);
Console
GET _search
{
"aggs": {
"ignored_fields": {
"terms": {
"field": "_ignored"
}
}
}
}