WARNING: Version 2.3 of Elasticsearch has passed its EOL date.
This documentation is no longer being maintained and may be removed. If you are running this version, we strongly advise you to upgrade. For the latest information, see the current release documentation.
norms
editnorms
editNorms store various normalization factors — a number to represent the
relative field length and the index time boost
setting — that are later used at query time in order to compute the score of a document
relatively to a query.
Although useful for scoring, norms also require quite a lot of memory (typically in the order of one byte per document per field in your index, even for documents that don’t have this specific field). As a consequence, if you don’t need scoring on a specific field, you should disable norms on that field. In particular, this is the case for fields that are used solely for filtering or aggregations.
The norms.enabled
setting must have the same setting for fields of the
same name in the same index. Norms can be disabled on existing fields using
the PUT mapping API.
Norms can be disabled (but not reenabled) after the fact, using the PUT mapping API like so:
PUT my_index/_mapping/my_type { "properties": { "title": { "type": "string", "norms": { "enabled": false } } } }
Norms will not be removed instantly, but will be removed as old segments are merged into new segments as you continue indexing new documents. Any score computation on a field that has had norms removed might return inconsistent results since some documents won’t have norms anymore while other documents might still have norms.
Lazy loading of norms
editNorms can be loaded into memory eagerly (eager
), whenever a new segment
comes online, or they can loaded lazily (lazy
, default), only when the field
is queried.
Eager loading can be configured as follows:
PUT my_index/_mapping/my_type { "properties": { "title": { "type": "string", "norms": { "loading": "eager" } } } }
The norms.loading
setting must have the same setting for fields of the
same name in the same index. Its value can be updated on existing fields
using the PUT mapping API.