Here is a summary of available options on a field, broken down by use case. A true or false indicates that the option must be set to the given value for the use case to function correctly.
use case |
indexed |
stored |
multiValued |
omitNorms |
termVectors |
termPositions |
termOffsets |
search within field |
true |
|
|
|
|
|
|
retrieve contents |
|
true |
|
|
|
|
|
use as unique key |
true |
|
false |
|
|
|
|
sort on field |
true |
|
false |
true [1] |
|
|
|
use field boosts |
|
|
|
false |
|
|
|
document boosts affect searches within field |
|
|
|
false |
|
|
|
highlighting |
true[3] |
true |
|
|
[2] |
[2] |
[2] |
faceting |
true |
|
|
|
|
|
|
add multiple values, maintaining order |
|
|
true |
|
|
|
|
field length affects doc score |
|
|
|
false |
|
|
|
|
true[5] |
|
|
true[5] |
|
|
|
term frequency[4] |
|
|
|
|
true |
|
|
document frequency[4] |
|
|
|
|
true |
|
|
tf*idf[4] |
|
|
|
|
true |
|
|
term postitions[4] |
|
|
|
|
true |
true |
true |
term offsets[4] |
|
|
|
|
true |
true |
true |
Notes:
recommended but not necessary
- stored must always be true for highlighting. If you also add both termVectors and termOffsets, this can be used to boost performance. (Without termVectors/termOffsets, Solr needs to reanalyze the whole field to perform highlighting.) If you furthermore add termPositions, additional speedup may be possible. Note, that you must index the field in order to be able to use termVectors, termOffsets and termPositions.
a tokenizer must be defined for the field, but it doesn't need to be indexed
For use with the TermVectorComponent
- Uses the term vector if present, otherwise the stored field. Reanalyzes the document if using the stored field.
For further considerations for faceting, see also SolrFacetingOverview. For more information on term frequency, positions, offsets etc. see TermVectorComponent.