Get term vector information

Auth

Get information and statistics about terms in the fields of a particular document.

You can retrieve term vectors for documents stored in the index or for artificial documents passed in the body of the request. You can specify the fields you are interested in through the fields parameter or by adding the fields to the request body. For example:

GET /my-index-000001/_termvectors/1?fields=message
		

Fields can be specified using wildcards, similar to the multi match query.

Term vectors are real-time by default, not near real-time. This can be changed by setting realtime parameter to false.

You can request three types of values: term information, term statistics, and field statistics. By default, all term information and field statistics are returned for all fields but term statistics are excluded.

Term information

  • term frequency in the field (always returned)
  • term positions (positions: true)
  • start and end offsets (offsets: true)
  • term payloads (payloads: true), as base64 encoded bytes

If the requested information wasn't stored in the index, it will be computed on the fly if possible. Additionally, term vectors could be computed for documents not even existing in the index, but instead provided by the user.

Warning

Start and end offsets assume UTF-16 encoding is being used. If you want to use these offsets in order to get the original text that produced this token, you should make sure that the string you are taking a sub-string of is also encoded using UTF-16.

Behaviour

The term and field statistics are not accurate. Deleted documents are not taken into account. The information is only retrieved for the shard the requested document resides in. The term and field statistics are therefore only useful as relative measures whereas the absolute numbers have no meaning in this context. By default, when requesting term vectors of artificial documents, a shard to get the statistics from is randomly selected. Use routing only to hit a particular shard. Refer to the linked documentation for detailed examples of how to use this API.

About term vectors API examples

Required privileges

Index privileges read

Path parameters

index string required

The name of the index that contains the document.

id string optional

A unique identifier for the document.

Leave it out to use /{index}/_termvectors.

Query parameters

fields union string | string[]

A comma-separated list or wildcard expressions of fields to include in the statistics. It is used as the default list unless a specific field list is provided in the completion_fields or fielddata_fields parameters.

field_statistics boolean · default: true

If true, the response includes:

  • The document count (how many documents contain this field).
  • The sum of document frequencies (the sum of document frequencies for all terms in this field).
  • The sum of total term frequencies (the sum of total term frequencies of each term in this field).
offsets boolean · default: true

If true, the response includes term offsets.

payloads boolean · default: true

If true, the response includes term payloads.

positions boolean · default: true

If true, the response includes term positions.

preference string

The node or shard the operation should be performed on. It is random by default.

realtime boolean · default: true

If true, the request is real-time as opposed to near-real-time.

routing union string | string[]

A custom value that is used to route operations to a specific shard. Not allowed when index.slice.enabled is true for the target index; use _slice instead.

term_statistics boolean · default: false

If true, the response includes:

  • The total term frequency (how often a term occurs in all documents).
  • The document frequency (the number of documents containing the current term).

By default these values are not returned since term statistics can have a serious performance impact.

version number

If true, returns the document version as part of a hit.

version_type enum

The version type.

Supported values include:

  • internal: Use internal versioning that starts at 1 and increments with each update or delete.
  • external: Only index the document if the specified version is strictly higher than the version of the stored document or if there is no existing document.
  • external_gte: Only index the document if the specified version is equal or higher than the version of the stored document or if there is no existing document. NOTE: The external_gte version type is meant for special use cases and should be used with care. If used incorrectly, it can result in loss of data.
Values: internal external external_gte

Request body

doc object

An artificial document (a document not present in the index) for which you want to retrieve term vectors.

filter object

Filter terms based on their tf-idf scores. This could be useful in order find out a good characteristic vector of a document. This feature works in a similar manner to the second phase of the More Like This Query.

max_doc_freq number

Ignore words which occur in more than this many docs. Defaults to unbounded.

max_num_terms number · default: 25

The maximum number of terms that must be returned per field.

max_term_freq number

Ignore words with more than this frequency in the source doc. It defaults to unbounded.

max_word_length number · default: 0

The maximum word length above which words will be ignored. Defaults to unbounded.

min_doc_freq number · default: 1

Ignore terms which do not occur in at least this many docs.

min_term_freq number · default: 1

Ignore words with less than this frequency in the source doc.

min_word_length number · default: 0

The minimum word length below which words will be ignored.

per_field_analyzer map string to string

Override the default per-field analyzer. This is useful in order to generate term vectors in any fashion, especially when using artificial documents. When providing an analyzer for a field that already stores term vectors, the term vectors will be regenerated.

fields string[]

A list of fields to include in the statistics. It is used as the default list unless a specific field list is provided in the completion_fields or fielddata_fields parameters.

field_statistics boolean · default: true

If true, the response includes:

  • The document count (how many documents contain this field).
  • The sum of document frequencies (the sum of document frequencies for all terms in this field).
  • The sum of total term frequencies (the sum of total term frequencies of each term in this field).
offsets boolean · default: true

If true, the response includes term offsets.

payloads boolean · default: true

If true, the response includes term payloads.

positions boolean · default: true

If true, the response includes term positions.

term_statistics boolean · default: false

If true, the response includes:

  • The total term frequency (how often a term occurs in all documents).
  • The document frequency (the number of documents containing the current term).

By default these values are not returned since term statistics can have a serious performance impact.

routing union oneOf

A custom value that is used to route operations to a specific shard.

One of: string[] or string
version number

If true, returns the document version as part of a hit.

version_type enum

The version type.

Supported values include:

  • internal: Use internal versioning that starts at 1 and increments with each update or delete.
  • external: Only index the document if the specified version is strictly higher than the version of the stored document or if there is no existing document.
  • external_gte: Only index the document if the specified version is equal or higher than the version of the stored document or if there is no existing document. NOTE: The external_gte version type is meant for special use cases and should be used with care. If used incorrectly, it can result in loss of data.
Values: internal external external_gte

Response

application/json
found boolean required
_id string
_index string required
term_vectors map string to object
<string> object
field_statistics object
doc_count number required
sum_doc_freq number required
sum_ttf number required
terms map string to object required
<string> object
doc_freq number
score number
term_freq number required
tokens object[]
end_offset number
payload string
position number required
start_offset number
ttf number
took number required
_version number required