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

# Elasticsearch (and family)

> Customer-provided Elasticsearch / Lucenia / OpenSearch deployment in place of default-shipped search

<img src="https://mintcdn.com/tensor9/BOMAPFtOccK3UoXZ/images/diagrams/customer-provided-elasticsearch-overview-dark.svg?fit=max&auto=format&n=BOMAPFtOccK3UoXZ&q=85&s=65e020e9631ae54c9bde9f24bd80c253" className="block dark:hidden" alt="Customer-provided Elasticsearch family: the origin stack uses the Elasticsearch API; the customer can plug in a managed cloud (Elastic Cloud or AWS OpenSearch Service), Lucenia (self-hosted with commercial license), or self-hosted OpenSearch / Elasticsearch OSS." width="1300" height="720" data-path="images/diagrams/customer-provided-elasticsearch-overview-dark.svg" />

<img src="https://mintcdn.com/tensor9/BOMAPFtOccK3UoXZ/images/diagrams/customer-provided-elasticsearch-overview-light.svg?fit=max&auto=format&n=BOMAPFtOccK3UoXZ&q=85&s=39fd751c0ec6288407ce32d2f9ad0438" className="hidden dark:block" alt="Customer-provided Elasticsearch family: the origin stack uses the Elasticsearch API; the customer can plug in a managed cloud (Elastic Cloud or AWS OpenSearch Service), Lucenia (self-hosted with commercial license), or self-hosted OpenSearch / Elasticsearch OSS." width="1300" height="720" data-path="images/diagrams/customer-provided-elasticsearch-overview-light.svg" />

If your origin stack uses the Elasticsearch / OpenSearch API for full-text search, log aggregation, or vector search (kNN), your customer can supply their own search cluster and the compiler will emit a deployment stack that talks to it instead of provisioning a default-shipped cluster.

This page covers the wire-compatible Elasticsearch-family API surface. Three substitution paths are supported:

1. **Managed cloud** - [Elastic Cloud](https://www.elastic.co/cloud) (Elastic, Inc.'s SaaS) or [AWS OpenSearch Service](https://aws.amazon.com/opensearch-service/) (AWS's managed OpenSearch). Both are managed by their respective vendors; you supply only the endpoint + credentials.
2. **[Lucenia](https://lucenia.io/)** - self-hosted with a paid commercial license. Founded by the original OpenSearch creator at AWS, Lucenia is 100% wire-compatible with the Elasticsearch / OpenSearch API and adds multimodal search (vector + geospatial + numerics + timestamps + IP). Tensor9 has a [direct partnership with Lucenia](https://www.tensor9.com/resources/how-lucenia-is-building-consistent-self-hosted-deployments-with-tensor9/).
3. **Self-hosted OSS** - OpenSearch or Elasticsearch OSS that the customer runs themselves on Kubernetes or VMs / bare metal.

## What the customer provides

| Field                                  | Purpose                                                                                                                                          |
| -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Cluster URL**                        | The `https://host:port` endpoint of the coordinating nodes.                                                                                      |
| **Username + password** *(or API key)* | The credential the appliance authenticates with. Elastic Cloud + Lucenia + OpenSearch all support API keys; basic auth works for legacy clients. |
| **CA certificate** *(optional)*        | The trust anchor for the cluster's TLS certificate when the customer uses a private CA.                                                          |
| **Index prefix** *(optional)*          | A namespace prefix so the appliance's indices do not collide with other tenants on the same cluster.                                             |

The customer provisions the cluster, creates the role mapping the appliance authenticates as, and grants index-level privileges (read/write on the appliance's index prefix; cluster monitor if your application reads health).

## What changes in the deployment stack

When customer-provided Elasticsearch is selected, the compiler:

* Drops the default-shipped OpenSearch cluster from the deployment stack (no managed-service resource, no in-cluster StatefulSet, no automated snapshot repository).
* Wires the appliance's services to the customer's cluster URL.
* Injects the customer's credentials as secrets the services read at startup.
* Sets the index prefix the appliance writes under.

Your application code does not change. The connection URL changes; the queries and indexing operations your application issues do not.

## Why Lucenia?

Lucenia is highlighted on this page as the recommended commercial alternative for customers who want the search-API contract on their own infrastructure, without Elastic licensing concerns. It is source-available Apache code with a paid commercial license. Key properties:

* **Wire-compatible** with the Elasticsearch / OpenSearch API. Your existing clients work unchanged.
* **Multimodal search** built in: vector, geospatial, numerics, timestamps, and IP, all queryable in a single index.
* **Founded by the original OpenSearch creator** (Nick Knize), the engineer who led OpenSearch at AWS for four years.
* **Tensor9 partnership** - Tensor9 consolidates Lucenia's prior multi-mechanism deployment story into a single origin stack. See the [case study](https://www.tensor9.com/resources/how-lucenia-is-building-consistent-self-hosted-deployments-with-tensor9/).

For self-hosted OSS deployments (OpenSearch / Elasticsearch OSS), the third card applies.

## What the customer takes on

When your customer brings their own search cluster, they own:

* Cluster provisioning, node sizing, and shard count planning.
* Snapshot configuration and snapshot repository (S3, GCS, Azure Blob, or shared filesystem).
* Patching, version upgrades, and major-version migrations.
* High-availability replica configuration and rolling restarts.
* Monitoring and alerting on the cluster (heap pressure, GC pauses, indexing rate, search latency).

## What stays your responsibility

* All application-level concerns: index mappings, analyzer configuration, query design, relevance tuning, vector embedding generation.
* Your services continue to be observable through Tensor9's normal mechanisms.
* [Operations](/fundamentals/operations) commands that operate on the appliance's services still work normally. Operations commands cannot reach into your customer's search cluster.

## Authentication and rotation

The username and password (or API key) are stored as [Customer-Supplied Secrets](/fundamentals/secrets#secret-ownership-models) - Tensor9 has no visibility into the underlying value. The appliance reads them at startup and on every reconnection.

Two rotation paths:

* **Username + password**: rotate the password in the customer's cluster (Elastic Cloud / Lucenia / OpenSearch admin UI) and update the secret in the customer's secret store; restart the affected services.
* **API key**: API keys are independently revocable in all three families. Mint a new API key, update the secret, restart - then revoke the old one once the rollout settles.

For AWS OpenSearch Service with SigV4 auth, the appliance assumes a customer-supplied IAM role and the underlying STS token refreshes automatically.

## Where this fits

This page is one of the services covered by [Customer-Provided Services](/customizations/customer-provided-services). For automatic cross-cloud substitution (AWS OpenSearch Service to other clouds based on form factor), see [Service equivalents](/fundamentals/service-equivalents). Partner documentation: [Elastic Cloud](https://www.elastic.co/cloud), [Lucenia](https://lucenia.io/), [OpenSearch](https://opensearch.org/).
