> ## Documentation Index
> Fetch the complete documentation index at: https://docs.startree.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Boost query performance using indexing strategies, including inverted, range, sorted, and star-tree indexes for efficient data management.

Apache Pinot is built for scale, effortlessly handling massive datasets and high query throughput. At the heart of its exceptional performance and flexibility are Apache Pinot's advanced indexing capabilities, enabling users to execute ultra-fast analytics even at petabyte scale. With a comprehensive set of indexing techniques, Pinot empowers users to confidently select the indexes best suited for their unique data characteristics and evolving query patterns.

## Why Use Indexes?

* **Accelerated Query Performance**: Indexes drastically enhance query speed, efficiently pinpointing relevant data segments even at massive scale.
* **Optimized Resource Usage**: Strategic indexing reduces unnecessary data scans, effectively lowering resource consumption and operational costs.
* **Flexible Analytics**: A variety of index types allows Pinot to accommodate diverse analytical workloads, ranging from straightforward lookups to complex analytics and sophisticated similarity searches.

## Supported Index Types

Apache Pinot supports a wide range of indexes tailored to optimize various query scenarios:

<CardGroup cols="3">
  <Card title="Inverted Index" icon="arrow-down-big-small" iconType="light" color="#0673fb" href="/corecapabilities/manage-data/indexes/inverted-index">
    Maps each value directly to its rows for fast lookups.
  </Card>

  <Card title="Star-tree Index" icon="star-sharp" iconType="light" color="#0673fb" href="/corecapabilities/manage-data/indexes/startree-index">
    Delivers superior aggregation performance on large, high-cardinality datasets.
  </Card>

  <Card title="Range Index" icon="arrows-left-right-to-line" iconType="light" color="#0673fb" href="/corecapabilities/manage-data/indexes/range-index">
    Handles numeric range queries efficiently without requiring data sorting.
  </Card>

  <Card title="Forward Index" icon="forward" iconType="light" color="#0673fb" href="/corecapabilities/manage-data/indexes/forward-index">
    Enhances range queries by maintaining data in a sorted sequence. Types: Dictionary-Encoded, Sorted, and Raw Value.
  </Card>

  <Card title="JSON Index" icon="diagram-nested" iconType="light" color="#0673fb" href="/corecapabilities/manage-data/indexes/json-index">
    * Enables fast queries on JSON-structured data.
  </Card>

  <Card title="Geospatial Index" icon="location-question" iconType="light" color="#0673fb" href="/corecapabilities/manage-data/indexes/geospatial-index">
    Powers geographic queries, enabling proximity searches and spatial analytics.
  </Card>

  <Card title="Text Index (Lucene)" icon="text-size" iconType="light" color="#0673fb" href="/corecapabilities/manage-data/indexes/text-index">
    Provides rapid search capabilities for unstructured text fields through full-text indexing.
  </Card>

  <Card title="Text Index (Native)" icon="text-size" iconType="light" color="#0673fb" href="/corecapabilities/manage-data/indexes/native-text-index">
    Provides rapid search capabilities for unstructured text fields through full-text indexing.
  </Card>

  <Card title="Timestamp Index" icon="timer" iconType="light" color="#0673fb" href="/corecapabilities/manage-data/indexes/timestamp-index">
    Enables fast filtering on timestamp columns by indexing at a defined time granularity.
  </Card>

  <Card title="Vector Index" icon="head-side-brain" iconType="light" color="#0673fb" href="/corecapabilities/manage-data/indexes/vector-index">
    Supports fast similarity searches on vector embeddings, ideal for Gen AI and recommendation workloads.
  </Card>

  <Card title="Sparse Index" icon="rectangles-mixed" iconType="light" color="#0673fb" href="/corecapabilities/manage-data/indexes/sparse-index">
    Optimizes high-cardinality equality filters using chunked partitioning.
  </Card>

  <Card title="Bloom Filter" icon="flower" iconType="light" color="#0673fb" href="/corecapabilities/manage-data/indexes/bloom-filter">
    Fast segment pruning for equality queries with minimal memory.
  </Card>

  <Card title="FST Index" icon="gear-code" iconType="light" color="#0673fb" href="/corecapabilities/manage-data/indexes/fst-index">
    Compact regex search on dictionary-encoded text columns.
  </Card>

  <Card title="Dictionary Index" icon="book-blank" iconType="light" color="#0673fb" href="/corecapabilities/manage-data/indexes/dictionary-index">
    Replaces repeated values with integer IDs for storage efficiency.
  </Card>

  <Card title="Composite JSON Index" icon="file-lines" iconType="light" color="#0673fb" href="/corecapabilities/manage-data/indexes/composite-json-index">
    An enhanced version of the [JSON Index](/corecapabilities/manage-data/indexes/json-index) to reduce index size and improve performance.
  </Card>
</CardGroup>

When selecting the right index for your use case, consider the following:

* **Query Patterns**: Assess the types of queries you run—point lookups, range queries, aggregations, or similarity searches.
* **Data Type and Cardinality**: Evaluate column uniqueness, data distribution, and characteristics.
* **Performance vs. Storage Trade-offs**: Understand that some indexes enhance performance substantially but may require additional storage.

By strategically selecting indexes based on your data and query requirements, Apache Pinot empowers you to deliver blazing-fast analytics at any scale, making complex data exploration powerful and seamless.

## Updating Indexes

Updating indexes involves the following abstracted steps:

1. **Assess the Right Indexes**: Determine the appropriate indexes based on your query needs and data characteristics.
2. **Apply Index Configurations**: Configure indexes in your table configuration, referring to each index's dedicated documentation page for specific configuration options.
3. **Apply Changes and Reload**: Invoke the table reload using the reload API. This process occurs seamlessly, without downtime, and remains completely transparent to active queries.
