Link Search Menu Expand Document Documentation Menu

Index options

The index_options mapping parameter controls the level of detail stored in the inverted index for text fields. This setting directly influences both the index size and the capabilities available for scoring, phrase matching, and highlighting.

The index_options parameter has the following valid values.

Value Stores Description
docs Document IDs only Indexes only the existence of a term in a set of documents. Does not store frequency or position. Minimizes index size; suitable for simple existence checks.
freqs Document IDs + term frequency Adds term frequency information. Useful for improved relevance scoring but does not support phrase or proximity queries.
positions Document IDs + term frequency + term positions Includes term order and location in the document. Required for phrase queries and proximity searches.
offsets Document IDs + term frequency + term positions + offsets Most detailed. Adds character offsets for matched terms. Useful for highlighting but increases storage size.

By default, text fields are indexed with the positions option, balancing functionality and index size.

Example: Setting index_options on a field

Create an index named products with a description field that uses the positions setting for index_options:

PUT /products
{
  "mappings": {
    "properties": {
      "description": {
        "type": "text",
        "index_options": "positions"
      }
    }
  }
}

Index a document with content in the description field:

PUT /products/_doc/1
{
  "description": "This is a sample product description with several terms."
}

Run a phrase query against the description field:

POST /products/_search
{
  "query": {
    "match_phrase": {
      "description": "product description"
    }
  }
}

The phrase query successfully matches the document, demonstrating how the positions setting in index_options enables accurate phrase matching within the description field:

{
  ...
  "hits": {
    "total": {
      "value": 1,
      "relation": "eq"
    },
    "max_score": 0.5753642,
    "hits": [
      {
        "_index": "products",
        "_id": "1",
        "_score": 0.5753642,
        "_source": {
          "description": "This is a sample product description with several terms."
        }
      }
    ]
  }
}
350 characters left

Have a question? .

Want to contribute? or .