[[term-vector]] === `term_vector` Term vectors contain information about the terms produced by the <> process, including: * a list of terms. * the position (or order) of each term. * the start and end character offsets mapping the term to its origin in the original string. * payloads (if they are available) — user-defined binary data associated with each term position. These term vectors can be stored so that they can be retrieved for a particular document. The `term_vector` setting accepts: [horizontal] `no`:: No term vectors are stored. (default) `yes`:: Just the terms in the field are stored. `with_positions`:: Terms and positions are stored. `with_offsets`:: Terms and character offsets are stored. `with_positions_offsets`:: Terms, positions, and character offsets are stored. `with_positions_payloads`:: Terms, positions, and payloads are stored. `with_positions_offsets_payloads`:: Terms, positions, offsets and payloads are stored. The fast vector highlighter requires `with_positions_offsets`. <> can retrieve whatever is stored. WARNING: Setting `with_positions_offsets` will double the size of a field's index. [source,console] -------------------------------------------------- PUT my_index { "mappings": { "properties": { "text": { "type": "text", "term_vector": "with_positions_offsets" } } } } PUT my_index/_doc/1 { "text": "Quick brown fox" } GET my_index/_search { "query": { "match": { "text": "brown fox" } }, "highlight": { "fields": { "text": {} <1> } } } -------------------------------------------------- <1> The fast vector highlighter will be used by default for the `text` field because term vectors are enabled.