_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 has been deprecated and will be removed in a future major version.

Disabling _field_names is usually not necessary because it no longer carries the index overhead it once did. If you have a lot of fields which have doc_values and norms disabled and you do not need to execute exists queries using those fields you might want to disable _field_names by adding the following to the mappings:

  1. PUT tweets
  2. {
  3. "mappings": {
  4. "_field_names": {
  5. "enabled": false
  6. }
  7. }
  8. }