How opensearch-project/opensearch works
OpenSearch is a distributed search and observability engine. A typical client submits a request through the high-level REST client and HTTP transport to a cluster, where search services execute queries and optional search pipelines shape processing. Indexing can pass through ingest pipelines before reaching shard engines; streaming ingestion adds poller state management and cluster metadata coordination. The tree and excerpts support these core areas, REST client layers, PPL query service, and cloud repository integrations. Many server links are inferred from component roles; unsampled wiring is not expanded.
Main entry points: SearchService.java Search execution · RestHighLevelClient.java REST high-level client · Request.java HTTP transport · IngestService.java Ingest pipelines
Components 16
REST clients
- REST high-level client
client/rest-high-level/src/main/java/org/opensearch/client/RestHighLevelClient.java - Request converters
client/rest-high-level/src/main/java/org/opensearch/client/RequestConverters.java - HTTP transport
client/rest-http-client/src/main/java/org/opensearch/internal/httpclient/Request.java
Search and query
- Search execution
server/src/main/java/org/opensearch/search/SearchService.java - Search pipelines
server/src/main/java/org/opensearch/search/pipeline/SearchPipelineService.java - PPL query service
sandbox/plugins/test-ppl-frontend/src/main/java/org/opensearch/ppl/action/UnifiedQueryService.java - Tiered query metrics
server/src/main/java/org/opensearch/storage/slowlogs/TieredStorageQueryMetricService.java
Indexing and ingestion
- Ingest pipelines
server/src/main/java/org/opensearch/ingest/IngestService.java - Ingestion engine
server/src/main/java/org/opensearch/index/engine/IngestionEngine.java - Ingestion state
server/src/main/java/org/opensearch/cluster/metadata/MetadataStreamingIngestionStateService.java - Cluster state manager
server/src/main/java/org/opensearch/cluster/service/ClusterManagerService.java
Repository storage
- Azure repository service
plugins/repository-azure/src/main/java/org/opensearch/repositories/azure/AzureStorageService.java - GCS repository service
plugins/repository-gcs/src/main/java/org/opensearch/repositories/gcs/GoogleCloudStorageService.java
Other components
- Client application
- OpenSearch cluster
- Cloud storage
Connections 14
- Client application → REST high-level client: submits requests
- REST high-level client → Request converters: converts operations
- REST high-level client → HTTP transport: sends HTTP
- HTTP transport → OpenSearch cluster: transports requests
- OpenSearch cluster → Search execution: dispatches searches
- Search execution → Search pipelines: applies pipelines
- PPL query service → Search execution: executes plans
- OpenSearch cluster → Ingest pipelines: dispatches indexing
- Ingest pipelines → Ingestion engine: processes documents
- Ingestion engine → Ingestion state: updates poller state
- Ingestion state → Cluster state manager: updates cluster metadata
- Search execution → Tiered query metrics: records query metrics
- Azure repository service → Cloud storage: accesses blobs
- GCS repository service → Cloud storage: accesses objects