OpenSearch/docs/reference/mapping/fields/field-names-field.asciidoc

60 lines
1.3 KiB
Plaintext

[[mapping-field-names-field]]
=== `_field_names` field
The `_field_names` field indexes the names of every field in a document that
contains any value other than `null`. This field is used by the
<<query-dsl-exists-query,`exists`>> query to find documents that
either have or don't have any non-+null+ value for a particular field.
The value of the `_field_names` field is accessible in queries:
[source,js]
--------------------------
# Example documents
PUT my_index/my_type/1
{
"title": "This is a document"
}
PUT my_index/my_type/2?refresh=true
{
"title": "This is another document",
"body": "This document has a body"
}
GET my_index/_search
{
"query": {
"terms": {
"_field_names": [ "title" ] <1>
}
}
}
--------------------------
// CONSOLE
<1> Querying on the `_field_names` field (also see the <<query-dsl-exists-query,`exists`>> query)
==== Disabling `_field_names`
Because `_field_names` introduce some index-time overhead, you might want to
disable this field if you want to optimize for indexing speed and do not need
`exists` queries.
[source,js]
--------------------------------------------------
PUT tweets
{
"mappings": {
"tweet": {
"_field_names": {
"enabled": false
}
}
}
}
--------------------------------------------------
// CONSOLE