Field Properties by Use Case
Here is a summary of common use cases, and the attributes the fields or field types should have to support the case. An entry of true or false in the table indicates that the option must be set to the given value for the use case to function correctly. If no entry is provided, the setting of that attribute has no impact on the case.
Use Case | indexed | stored | multiValued | omitNorms | termVectors | termPositions | docValues |
---|---|---|---|---|---|---|---|
search within field | true | ||||||
retrieve contents | true8 | true8 | |||||
use as unique key | true | false | |||||
sort on field | true7 | false9 | true 1 | true7 | |||
highlighting | true4 | true | true2 | true 3 | |||
faceting 5 | true7 | true7 | |||||
add multiple values, maintaining order | true | ||||||
field length affects doc score | false | ||||||
MoreLikeThis 5 | true 6 |
Notes:
- Recommended but not necessary.
- Will be used if present, but not necessary.
- (if termVectors=true)
- A tokenizer must be defined for the field, but it doesn’t need to be indexed.
- Understanding Analyzers, Tokenizers, and Filters. Described in
stored=false
. Term vectors are not mandatory here. If not true, then a stored field is analyzed. So term vectors are recommended, but only required if indexed
ordocValues
must be true, but both are not required. DocValues can be more efficient in many cases. For[Int/Long/Float/Double/Date]PointFields
,docValues=true
is required. For most field types, either - DocValues. Stored content will be used by default, but docValues can alternatively be used. See
field()
function, e.g.,field(myfield,min)
; see the field() function in Function Queries. Multi-valued sorting may be performed on docValues-enabled fields using the two-argument