---
id: "search-index"
type: "kind"
category: "data"
url: "https://localhost:3000/catalogue/kinds/search-index"
---

# Search index

Derived index for text, prefix, vector or geospatial queries.

| | |
|---|---|
| Category | Data |
| Properties | 7 |
| Components | 32 |
| Rules | 1 |

## Properties

| property | type | values | required | default |
|---|---|---|---|---|
| `geoScheme` (advanced) | enum | `none`, `s2`, `h3`, `geohash`, `quadtree` | no | "none" |
| `indexing` | enum | `sync`, `async`, `batch` | no | "async" |
| `managed` | boolean | — | no | false |
| `rebuildCadenceHours` (advanced) | integer | — | no | — |
| `replicas` | integer | — | no | — |
| `shardingStrategy` (advanced) | enum | `none`, `hash`, `geo`, `time`, `prefix-range` | no | "none" |
| `structure` | enum | `inverted`, `trie`, `vector`, `geo-cell` | no | "inverted" |

## Rules for this kind · 1

### Search index without an asynchronous feed `derived-store-without-cdc-or-rebuild` (error)

- Page: https://localhost:3000/catalogue/rules/derived-store-without-cdc-or-rebuild.md
- Why: A search index is derived data and needs an asynchronous feed from a stream, change data capture or an indexing worker. Without one it is written inline on the request path, and it can never be rebuilt after it drifts.
- Applies to: every node of kind search-index
- Message: Search index '{{node.id}}' has no asynchronous feed from a stream, change data capture or worker. It cannot be rebuilt or kept in sync independently of the write path.

It fires when:

- this does not hold:
  - the node has at least one asynchronous incoming edge from a stream, change-data-capture or worker

## Components · 32

### vendor-neutral

- [Generic search index](https://localhost:3000/catalogue/components/search-index.md) `search-index` — the kind itself

### alibabacloud

- [Alibaba Cloud Elasticsearch](https://localhost:3000/catalogue/components/alibaba-elasticsearch.md) `alibaba-elasticsearch` — 2 defaults
- [OpenSearch](https://localhost:3000/catalogue/components/alibaba-open-search.md) `alibaba-open-search` — 2 defaults

### aws

- [Amazon Bedrock Knowledge Bases](https://localhost:3000/catalogue/components/aws-bedrock-knowledge-base.md) `aws-bedrock-knowledge-base` — 3 defaults
- [Amazon CloudSearch](https://localhost:3000/catalogue/components/aws-cloudsearch.md) `aws-cloudsearch` — 5 defaults
- [Amazon Kendra](https://localhost:3000/catalogue/components/aws-kendra.md) `aws-kendra` — 4 defaults
- [Amazon OpenSearch Service](https://localhost:3000/catalogue/components/aws-opensearch.md) `aws-opensearch` — 4 defaults

### azure

- [Azure AI Search](https://localhost:3000/catalogue/components/azure-ai-search.md) `azure-ai-search` — 5 defaults
- [Foundry IQ](https://localhost:3000/catalogue/components/azure-foundry-iq.md) `azure-foundry-iq` — 2 defaults

### cloudflare

- [AI Search](https://localhost:3000/catalogue/components/cloudflare-ai-search.md) `cloudflare-ai-search` — 4 defaults

### default

- [Algolia](https://localhost:3000/catalogue/components/algolia.md) `algolia` — 4 defaults
- [Coveo](https://localhost:3000/catalogue/components/coveo.md) `coveo` — 4 defaults
- [Elastic Cloud](https://localhost:3000/catalogue/components/elastic-cloud.md) `elastic-cloud` — 5 defaults
- [Elasticsearch](https://localhost:3000/catalogue/components/elasticsearch.md) `elasticsearch` — 4 defaults
- [Geo cell index](https://localhost:3000/catalogue/components/geo-cell-index.md) `geo-cell-index` — 3 defaults
- [Manticore Search](https://localhost:3000/catalogue/components/manticore.md) `manticore` — 4 defaults
- [Meilisearch](https://localhost:3000/catalogue/components/meilisearch.md) `meilisearch` — 4 defaults
- [OpenSearch](https://localhost:3000/catalogue/components/opensearch.md) `opensearch` — 4 defaults
- [Quickwit](https://localhost:3000/catalogue/components/quickwit.md) `quickwit` — 4 defaults
- [Apache Solr](https://localhost:3000/catalogue/components/solr.md) `solr` — 4 defaults
- [Sonic](https://localhost:3000/catalogue/components/sonic.md) `sonic` — 4 defaults
- [Sphinx](https://localhost:3000/catalogue/components/sphinx.md) `sphinx` — 4 defaults
- [Trie index](https://localhost:3000/catalogue/components/trie-index.md) `trie-index` — 3 defaults
- [Typesense](https://localhost:3000/catalogue/components/typesense.md) `typesense` — 3 defaults
- [Vespa](https://localhost:3000/catalogue/components/vespa.md) `vespa` — 4 defaults

### gcp

- [Cloud Talent Solution](https://localhost:3000/catalogue/components/google-cloud-talent-solution.md) `google-cloud-talent-solution` — 5 defaults
- [Vertex AI Search](https://localhost:3000/catalogue/components/google-vertex-ai-search.md) `google-vertex-ai-search` — 5 defaults
- [AI Commerce Search](https://localhost:3000/catalogue/components/google-vertex-ai-search-commerce.md) `google-vertex-ai-search-commerce` — 5 defaults
- [Vision API Product Search](https://localhost:3000/catalogue/components/google-vision-product-search.md) `google-vision-product-search` — 6 defaults

### ibm

- [IBM Cloud Databases for Elasticsearch](https://localhost:3000/catalogue/components/ibm-databases-for-elasticsearch.md) `ibm-databases-for-elasticsearch` — 3 defaults
- [IBM Watson Discovery](https://localhost:3000/catalogue/components/ibm-watson-discovery.md) `ibm-watson-discovery` — 3 defaults

### oci

- [OCI Search with OpenSearch](https://localhost:3000/catalogue/components/oci-opensearch.md) `oci-opensearch` — 3 defaults

## Source (`kind` YAML, verbatim)

```yaml
# yaml-language-server: $schema=../schema/kind.schema.json
# Derived index for text, prefix, vector or geospatial queries (Elasticsearch, Solr, in-house tries, S2/H3 cell indexes).
# Absorbs the geospatial-index candidate: structure geo-cell plus geoScheme.
schemaVersion: "1"
type: "kind"
id: "search-index"
category: "data"
properties:
  structure:
    type: "enum"
    values: ["inverted", "trie", "vector", "geo-cell"]
    default: "inverted"
  shardingStrategy:
    type: "enum"
    values: ["none", "hash", "geo", "time", "prefix-range"]
    default: "none"
    advanced: true
  indexing:
    type: "enum"
    values: ["sync", "async", "batch"]
    default: "async"
  rebuildCadenceHours:
    type: "integer"
    advanced: true
  replicas:
    type: "integer"
  geoScheme:
    type: "enum"
    values: ["none", "s2", "h3", "geohash", "quadtree"]
    default: "none"
    advanced: true
  managed:
    type: "boolean"
    default: false
```

Human page: https://localhost:3000/catalogue/kinds/search-index
