# Build with Pinot

- [Overview](https://docs.pinot.apache.org/build-with-pinot/build-with-pinot.md): Build applications and data workflows with Apache Pinot using task-oriented guidance.
- [Data modeling](https://docs.pinot.apache.org/build-with-pinot/data-modeling.md): Build Pinot tables by getting schema, table shape, logical-table, and schema-evolution decisions right before ingestion starts.
- [Schema and Table Shape](https://docs.pinot.apache.org/build-with-pinot/data-modeling/schema.md): Understand Pinot schema design, table shape, null handling, and the schema fields that drive query and ingestion behavior.
- [Logical Tables](https://docs.pinot.apache.org/build-with-pinot/data-modeling/logical-tables.md): Use logical tables when one query name should span multiple physical Pinot tables without exposing the partitioning scheme to users.
- [Schema Evolution](https://docs.pinot.apache.org/build-with-pinot/data-modeling/schema-evolution.md): Evolve Pinot schemas safely by adding columns, reloading segments, and deciding when a new table is the cleaner path.
- [Ingestion](https://docs.pinot.apache.org/build-with-pinot/ingestion.md): Plan Pinot ingestion around batch, stream, upsert, dedup, formats, filesystems, and transformation choices.
- [Batch Ingestion](https://docs.pinot.apache.org/build-with-pinot/ingestion/batch-ingestion.md): Choose batch ingestion when Pinot should load prebuilt data from files, warehouses, or distributed processing jobs.
- [Batch Ingestion Guide](https://docs.pinot.apache.org/build-with-pinot/ingestion/batch-ingestion/batch-ingestion.md): Batch ingestion of data into Apache Pinot.
- [SQL Insert Into From Files](https://docs.pinot.apache.org/build-with-pinot/ingestion/batch-ingestion/from-query-console.md): Insert a file into Pinot from Query Console
- [Upload Pinot Segment Using CLI](https://docs.pinot.apache.org/build-with-pinot/ingestion/batch-ingestion/segment-upload.md): Upload existing Pinot segments to a controller.
- [Spark](https://docs.pinot.apache.org/build-with-pinot/ingestion/batch-ingestion/spark.md): Batch ingestion of data into Apache Pinot using Apache Spark.
- [Flink](https://docs.pinot.apache.org/build-with-pinot/ingestion/batch-ingestion/flink.md): Batch ingestion of data into Apache Pinot using Apache Flink.
- [Hadoop](https://docs.pinot.apache.org/build-with-pinot/ingestion/batch-ingestion/hadoop.md): Batch ingestion of data into Apache Pinot using Apache Hadoop.
- [Backfill Data](https://docs.pinot.apache.org/build-with-pinot/ingestion/batch-ingestion/backfill-data.md): Batch ingestion of backfill data into Apache Pinot.
- [Dimension Table](https://docs.pinot.apache.org/build-with-pinot/ingestion/batch-ingestion/dim-table.md): Batch ingestion of data into Apache Pinot using dimension tables.
- [Stream Ingestion](https://docs.pinot.apache.org/build-with-pinot/ingestion/stream-ingestion.md): Choose stream ingestion when Pinot should consume events continuously and expose new rows quickly.
- [Stream Ingestion Guide](https://docs.pinot.apache.org/build-with-pinot/ingestion/stream-ingestion/stream-ingestion.md): This guide shows you how to ingest a stream of records into a Pinot table.
- [Ingest from Apache Kafka](https://docs.pinot.apache.org/build-with-pinot/ingestion/stream-ingestion/import-from-apache-kafka.md): This guide shows you how to ingest a stream of records from an Apache Kafka topic into a Pinot table.
- [Ingest from Amazon Kinesis](https://docs.pinot.apache.org/build-with-pinot/ingestion/stream-ingestion/amazon-kinesis.md): This guide shows you how to ingest a stream of records from an Amazon Kinesis topic into a Pinot table.
- [Ingest from Apache Pulsar](https://docs.pinot.apache.org/build-with-pinot/ingestion/stream-ingestion/apache-pulsar.md): This guide shows you how to ingest a stream of records from an Apache Pulsar topic into a Pinot table.
- [Configure Indexes](https://docs.pinot.apache.org/build-with-pinot/ingestion/stream-ingestion/configure-indexes.md)
- [Stream Ingestion with CLP](https://docs.pinot.apache.org/build-with-pinot/ingestion/stream-ingestion/clp.md): Support for encoding fields with CLP during ingestion.
- [Confluent Schema Registry Decoders](https://docs.pinot.apache.org/build-with-pinot/ingestion/stream-ingestion/confluent-schema-registry-decoders.md): Decode Avro, JSON, and Protobuf messages from Kafka using Confluent Schema Registry.
- [Kafka Connector Versions](https://docs.pinot.apache.org/build-with-pinot/ingestion/stream-ingestion/kafka-connector-versions.md): Choose the right Apache Kafka connector version for your Pinot deployment.
- [Upsert and Dedup](https://docs.pinot.apache.org/build-with-pinot/ingestion/upsert-dedup.md): Use upsert or dedup when ingesting rows should collapse to one current record per key instead of preserving every event.
- [Offline Table Upsert](https://docs.pinot.apache.org/build-with-pinot/ingestion/upsert-dedup/offline-table-upsert.md): Use upsert semantics on batch-ingested offline tables.
- [Stream Ingestion with Upsert](https://docs.pinot.apache.org/build-with-pinot/ingestion/upsert-dedup/upsert.md): Upsert support in Apache Pinot.
- [Segment Compaction on Upserts](https://docs.pinot.apache.org/build-with-pinot/ingestion/upsert-dedup/segment-compaction-on-upserts.md): Use segment compaction on upsert-enabled real-time tables.
- [Stream Ingestion with Dedup](https://docs.pinot.apache.org/build-with-pinot/ingestion/upsert-dedup/dedup.md): Deduplication support in Apache Pinot.
- [Formats and Filesystems](https://docs.pinot.apache.org/build-with-pinot/ingestion/formats-filesystems.md): Match Pinot ingestion to the right input formats and deep-storage filesystems without overcomplicating the table design.
- [Supported Data Formats](https://docs.pinot.apache.org/build-with-pinot/ingestion/formats-filesystems/pinot-input-formats.md): This section contains a collection of guides that will show you how to import data from a Pinot-supported input format.
- [File Systems](https://docs.pinot.apache.org/build-with-pinot/ingestion/formats-filesystems/file-systems.md): This section contains a collection of short guides to show you how to import data from a Pinot-supported file system.
- [Amazon S3](https://docs.pinot.apache.org/build-with-pinot/ingestion/formats-filesystems/file-systems/amazon-s3.md): This guide shows you how to import data from files stored in Amazon S3.
- [Azure Data Lake Storage](https://docs.pinot.apache.org/build-with-pinot/ingestion/formats-filesystems/file-systems/import-from-adls-azure.md): This guide shows you how to import data from files stored in Azure Data Lake Storage Gen2 (ADLS Gen2)
- [HDFS](https://docs.pinot.apache.org/build-with-pinot/ingestion/formats-filesystems/file-systems/import-from-hdfs.md): This guide shows you how to configure HDFS for use with Pinot, including data import and deep storage.
- [Google Cloud Storage](https://docs.pinot.apache.org/build-with-pinot/ingestion/formats-filesystems/file-systems/import-from-gcp.md): This guide shows you how to import data from GCP (Google Cloud Platform).
- [Complex Type (Array, Map) Handling](https://docs.pinot.apache.org/build-with-pinot/ingestion/formats-filesystems/complex-type.md): Complex type handling in Apache Pinot.
- [Complex Type Examples (Unnest)](https://docs.pinot.apache.org/build-with-pinot/ingestion/formats-filesystems/complex-type/complex-type-examples.md): Additional examples that demonstrate handling of complex types.
- [Ingest Records with Dynamic Schemas](https://docs.pinot.apache.org/build-with-pinot/ingestion/formats-filesystems/schema-conforming-transformer.md): Storing records with dynamic schemas in a table with a fixed schema.
- [Transformations and Aggregations](https://docs.pinot.apache.org/build-with-pinot/ingestion/transformations-and-aggregations.md): Use ingest-time transformations and aggregations when Pinot should normalize or reduce data before it reaches query time.
- [Ingestion Transformations](https://docs.pinot.apache.org/build-with-pinot/ingestion/transformations-and-aggregations/ingestion-level-transformations.md)
- [Ingestion Aggregations](https://docs.pinot.apache.org/build-with-pinot/ingestion/transformations-and-aggregations/ingestion-level-aggregations.md)
- [Querying & SQL](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql.md): Learn how to query Apache Pinot, choose the right query engine, and find SQL and function guidance quickly.
- [Querying Pinot](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/querying-pinot.md): A practical entry point for querying Pinot.
- [SQL syntax](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/sql-syntax.md): A narrative guide to Pinot SQL syntax and the main constructs you use most often.
- [SQL Table DDL](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/sql-syntax/sql-ddl.md): Use controller-managed SQL DDL to create, inspect, list, and drop Pinot tables.
- [SQL Reference](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/sql-syntax/sql-reference.md): Complete reference for SQL syntax, operators, and clauses supported by Apache Pinot's single-stage engine (SSE) and multi-stage engine (MSE).
- [Query Syntax Overview](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/sql-syntax/query-syntax-overview.md): Query Pinot using supported syntax.
- [Filtering with IdSet](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/sql-syntax/filtering-with-idset.md): Learn how to write fast queries for looking up IDs in a list of values.
- [GapFill Function for Time-Series Dataset](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/sql-syntax/gap-fill-functions.md)
- [Grouping Algorithm](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/sql-syntax/grouping-algorithm.md)
- [JOINs](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/sql-syntax/joins.md): Pinot supports JOINs, including left, right, full, semi, anti, lateral, and equi JOINs. Use JOINs to connect two table to generate a unified view, based on a related column between the tables.
- [Lookup UDF Join](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/sql-syntax/lookup-udf-join.md): For more information about using JOINs with the multi-stage query engine, see JOINs.
- [Row Expression Comparison](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/sql-syntax/row-expression-comparison.md)
- [Null Value Support](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/sql-syntax/null-value-support.md)
- [Vector Query Execution Semantics](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/sql-syntax/vector-query-execution.md)
- [Materialized Views](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/materialized-views.md): Create offline Pinot materialized views for recurring time-windowed aggregations.
- [Multi-Stage Query](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/multi-stage-query.md): Deep dive into the multi-stage engine (MSE) internals, execution model, and troubleshooting.
- [Understanding Stages](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/multi-stage-query/understanding-stages.md): Learn more about multi-stage stages and how to extract stages from query plans.
- [Multistage Lite Mode](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/multi-stage-query/multistage-lite-mode.md): Introduces the Multistage Engine Lite Mode
- [Physical Optimizer](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/multi-stage-query/physical-optimizer.md): Describes the new Multistage Engine Physical Query Optimizer
- [Explain Plan](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/multi-stage-query/explain-plan-1.md)
- [Stats](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/multi-stage-query/understanding-stage-stats.md): Learn more about multi-stage stats and how to use them to improve your queries.
- [Optimizing Joins](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/multi-stage-query/optimizing-joins.md): Tips and tricks that can be used to optimize joins
- [Join Strategies](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/multi-stage-query/join-strategies.md)
- [Random + Broadcast Join Strategy](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/multi-stage-query/join-strategies/random-+-broadcast-join-strategy.md)
- [Query Time Partition Join Strategy](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/multi-stage-query/join-strategies/query-time-partition-join-strategy.md)
- [Colocated Join Strategy](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/multi-stage-query/join-strategies/colocated-join-strategy.md)
- [Lookup Join Strategy](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/multi-stage-query/join-strategies/lookup-join-strategy.md)
- [Hints](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/multi-stage-query/hints.md)
- [Operator Types](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/multi-stage-query/operator-types.md): Describes the multi-stage operators in general
- [Aggregate](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/multi-stage-query/operator-types/aggregate.md): Describes the aggregate relation operator in the multi-stage query engine.
- [Filter](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/multi-stage-query/operator-types/filter.md): Describes the filter relation operator in the multi-stage query engine.
- [Join](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/multi-stage-query/operator-types/hash_join.md): Describes the hash join relation operator in the multi-stage query engine.
- [Intersect](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/multi-stage-query/operator-types/intersect.md): Describes the intersect relation operator in the multi-stage query engine.
- [Leaf](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/multi-stage-query/operator-types/leaf.md): Describes the leaf operator in the multi-stage query engine.
- [Literal](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/multi-stage-query/operator-types/literal.md): Describes the literal relation operator in the multi-stage query engine.
- [Mailbox Receive](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/multi-stage-query/operator-types/mailbox-receive.md): Describes the mailbox receive operator in the multi-stage query engine.
- [Mailbox Send](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/multi-stage-query/operator-types/mailbox-send.md): Describes the mailbox send operator in the multi-stage query engine.
- [Minus](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/multi-stage-query/operator-types/minus.md): Describes the minus relation operator in the multi-stage query engine.
- [Sort or Limit](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/multi-stage-query/operator-types/sortorlimit.md): Describes the sort or limit relation operator in the multi-stage query engine.
- [Transform](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/multi-stage-query/operator-types/transform.md): Describes the transform relation operator in the multi-stage query engine.
- [Union](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/multi-stage-query/operator-types/union.md): Describes the union relation operator in the multi-stage query engine.
- [Unnest](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/multi-stage-query/operator-types/unnest.md): Describes the unnest operator in the multi-stage query engine.
- [Window](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/multi-stage-query/operator-types/window.md): Describes the window relational operator in the multi-stage query engine.
- [Stage-Level Spooling](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/multi-stage-query/stage-level-spooling.md): Also know as reuse common expressions
- [Time Series Queries](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/time-series-queries.md)
- [Query Engines (SSE vs MSE)](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/sse-vs-mse.md): Understand the differences between the single-stage engine (SSE) and multi-stage engine (MSE) and when to use each.
- [Multi-Cluster Querying](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/multi-cluster-querying.md): Query data across multiple Pinot clusters using multi-cluster querying (federation)
- [Query options, quotas, cancellation & cursors](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/query-execution-controls.md): Query controls, diagnostics, and pagination behavior for Pinot SQL.
- [Query Options](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/query-execution-controls/query-options.md): Query-level switches that shape execution, diagnostics, and resource use.
- [Query Quotas](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/query-execution-controls/query-quotas.md): Table, database, and application query quotas in Pinot.
- [Query Cancellation](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/query-execution-controls/query-cancellation.md): How to stop a running Pinot query.
- [Query Correlation ID](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/query-execution-controls/query-correlation-id.md): How Pinot assigns and reuses query correlation IDs.
- [Query Using Cursors](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/query-execution-controls/query-using-cursors.md)
- [Default Disabled Rules](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/query-execution-controls/default-disabled-rules.md)
- [Explain Plan (Single-Stage)](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/query-execution-controls/explain-plan.md): How to inspect Pinot's execution plan for a query.
- [Explain Plan (Multi-Stage)](https://docs.pinot.apache.org/build-with-pinot/querying-and-sql/query-execution-controls/explain-plan-multi-stage.md): Multi-stage explain plan guidance for Pinot SQL.
- [Indexing](https://docs.pinot.apache.org/build-with-pinot/indexing.md): Choose the Pinot index that matches your query pattern and workload.
- [Choosing Indexes](https://docs.pinot.apache.org/build-with-pinot/indexing/choosing-indexes.md): Pick the right Pinot index by query pattern, data shape, and workload.
- [Bloom Filter](https://docs.pinot.apache.org/build-with-pinot/indexing/bloom-filter.md): This page describes configuring the Bloom filter for Apache Pinot
- [Dictionary Index](https://docs.pinot.apache.org/build-with-pinot/indexing/dictionary-index.md)
- [Forward Index](https://docs.pinot.apache.org/build-with-pinot/indexing/forward-index.md)
- [FST Index](https://docs.pinot.apache.org/build-with-pinot/indexing/fst-index.md)
- [Geospatial](https://docs.pinot.apache.org/build-with-pinot/indexing/geospatial-support.md): This page talks about geospatial support in Pinot.
- [Inverted Index](https://docs.pinot.apache.org/build-with-pinot/indexing/inverted-index.md): This page describes configuring the inverted index for Apache Pinot.
- [JSON Index](https://docs.pinot.apache.org/build-with-pinot/indexing/json-index.md): This page describes configuring the JSON index for Apache Pinot.
- [Native Text Index](https://docs.pinot.apache.org/build-with-pinot/indexing/native-text-index.md): This page talks about native text indices and corresponding search functionality in Apache Pinot.
- [Range Index](https://docs.pinot.apache.org/build-with-pinot/indexing/range-index.md): This page describes configuring the range index for Apache Pinot.
- [Star-Tree Index](https://docs.pinot.apache.org/build-with-pinot/indexing/star-tree-index.md): This page describes the indexing techniques available in Apache Pinot.
- [Text Search Support](https://docs.pinot.apache.org/build-with-pinot/indexing/text-search-support.md): This page talks about support for text search in Pinot.
- [Timestamp Index](https://docs.pinot.apache.org/build-with-pinot/indexing/timestamp-index.md): Use a timestamp index to speed up your time query with different granularities
- [Vector Index](https://docs.pinot.apache.org/build-with-pinot/indexing/vector-index.md): Configure vector indexes (HNSW, IVF\_FLAT, IVF\_PQ, IVF\_ON\_DISK) for approximate nearest-neighbor search, radius search, and filter-aware ANN lookups.
- [Connectors, clients & APIs](https://docs.pinot.apache.org/build-with-pinot/connectors-clients-apis.md): Choose the right Pinot client, BI integration, query engine, processing connector, or API surface for your use case.
- [Client libraries](https://docs.pinot.apache.org/build-with-pinot/connectors-clients-apis/client-libraries.md): Build applications with Pinot client libraries for Java, JDBC, Python, and Go.
- [JDBC](https://docs.pinot.apache.org/build-with-pinot/connectors-clients-apis/client-libraries/jdbc.md)
- [Java](https://docs.pinot.apache.org/build-with-pinot/connectors-clients-apis/client-libraries/java.md)
- [Java admin client](https://docs.pinot.apache.org/build-with-pinot/connectors-clients-apis/client-libraries/java-admin-client.md): Use the Pinot Java admin client to call controller REST APIs from JVM code.
- [Python](https://docs.pinot.apache.org/build-with-pinot/connectors-clients-apis/client-libraries/python.md)
- [Golang](https://docs.pinot.apache.org/build-with-pinot/connectors-clients-apis/client-libraries/golang.md): Pinot Client for Golang
- [BI tools](https://docs.pinot.apache.org/build-with-pinot/connectors-clients-apis/bi-tools.md): Connect Superset, Tableau, and Metabase to Pinot for dashboards and ad hoc exploration.
- [Superset](https://docs.pinot.apache.org/build-with-pinot/connectors-clients-apis/bi-tools/superset.md): Integrate with Superset
- [Tableau](https://docs.pinot.apache.org/build-with-pinot/connectors-clients-apis/bi-tools/tableau.md): This section details how to connect to Pinot from Tableau using JDBC
- [Metabase](https://docs.pinot.apache.org/build-with-pinot/connectors-clients-apis/bi-tools/metabase.md): Integrating Apache Pinot with Metabase
- [Query engines](https://docs.pinot.apache.org/build-with-pinot/connectors-clients-apis/query-engines.md): Connect federated SQL engines to Pinot for cross-source analytics.
- [Trino](https://docs.pinot.apache.org/build-with-pinot/connectors-clients-apis/query-engines/trino.md): Integrate with Trino for ad hoc queries with Full SQL
- [Query Engines on Kubernetes](https://docs.pinot.apache.org/build-with-pinot/connectors-clients-apis/query-engines/query-engines-kubernetes.md): Connect query engines like Superset and Trino to Pinot on Kubernetes
- [Processing connectors](https://docs.pinot.apache.org/build-with-pinot/connectors-clients-apis/processing-connectors.md): Use Flink and Spark to read from or write to Pinot in batch and streaming pipelines.
- [Flink Connector](https://docs.pinot.apache.org/build-with-pinot/connectors-clients-apis/processing-connectors/flink-connector.md): Apache Flink connector for writing data directly into Apache Pinot tables, supporting offline, realtime, and upsert table types.
- [Spark-Pinot Connector](https://docs.pinot.apache.org/build-with-pinot/connectors-clients-apis/processing-connectors/spark-pinot-connector.md): Use the Spark-Pinot connector to read data from and write data to Pinot.
- [Spark Pinot Connector Read Model](https://docs.pinot.apache.org/build-with-pinot/connectors-clients-apis/processing-connectors/spark-pinot-connector/spark-pinot-connector-read-model.md)
- [Spark Pinot Connector Write Model](https://docs.pinot.apache.org/build-with-pinot/connectors-clients-apis/processing-connectors/spark-pinot-connector/spark-pinot-connector-write-model.md)
- [REST / gRPC APIs](https://docs.pinot.apache.org/build-with-pinot/connectors-clients-apis/rest-grpc-apis.md): Lightweight overview of Pinot broker and controller APIs plus gRPC entrypoints.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.pinot.apache.org/build-with-pinot.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
