_field_names field
The _field_names field used to index the names of every field in a document that contains any value other than null. This field was used by the exists query to find documents that either have or don’t have any non-null value for a particular field.
Now the _field_names field only indexes the names of fields that have doc_values and norms disabled. For fields which have either doc_values or norm enabled the exists query will still be available but will not use the _field_names field.
Disabling _field_names
Disabling _field_names is no longer possible. It is now enabled by default because it no longer carries the index overhead it once did.
Support for disabling _field_names has been removed. Using it on new indices will throw an error. Using it in pre-8.0 indices is still allowed but issues a deprecation warning.
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/mapping-field-names-field.html