Meili CDC Docs

Index management

meilisearch-cdc manages the Meilisearch side too: index settings with drift detection, primary keys, swaps, compaction, a search playground and a documents browser, for every destination.

The Indexes page grouping indexes per Meilisearch instance with document counts, indexing state and the tasks that write to each index
Indexes grouped per instance, with the tasks that write to each.

The Indexes page

All instances are queried in parallel and their indexes listed per instance (default first). An unreachable instance is shown with its error. Each index shows its primary key, document count, whether it is indexing, and the tasks that write to it. Actions (admin):

  • Create index with a uid and an optional primary key. Usually unnecessary: tasks create their index on first write.
  • Swap indexes: exchange the contents of two indexes atomically, or rename one to a new uid.
  • Compact: ask Meilisearch to compact the index's storage.
  • Delete: type the uid to confirm. Refused with 409 while a running task writes to the index; stop the task first.

An index's page

Open an index for three tabs:

A playground for Meilisearch searches: query, filter expression, sort (field:asc or field:desc, comma separated), result limit, and the raw JSON response. Use it to check that a change in the source reached the index, or to try filters before building them into your application.

The search playground of an index with a query, a filter, sorted results and the raw Meilisearch response
The search playground.

Documents

Browse documents page by page and open any document as JSON.

Settings

The live settings in the settings editor. Changes are previewed (which keys change, from what to what) before they are applied; applying waits up to 30 seconds for Meilisearch and shows its error when it rejects the update. Reset restores Meilisearch's defaults. The primary key of an index can be changed here only while it holds no documents (409 otherwise).

The settings editor

The same editor is used in the task wizard (desired settings) and on index pages (live settings). It has a form view and a JSON view. Only the keys you set are sent; unset keys keep Meilisearch's defaults. Sections:

The index settings editor with collapsible sections for attributes, ranking rules, typo tolerance, synonyms, words, faceting and embedders
The settings editor; a dot marks sections changed from the defaults.
SectionSettingsWhat they do
AttributessearchableAttributes, displayedAttributes, filterableAttributes, sortableAttributes, distinctAttributeWhich fields are searched (in priority order), returned, usable in filters, usable for sorting, and deduplicated. Filterable attributes can use Meilisearch's granular form (attribute patterns with per-pattern features such as facet search or equality-only filters). Field names discovered from the source are offered as suggestions.
Ranking rulesrankingRulesThe order of relevancy criteria (words, typo, proximity, attribute, sort, exactness) and custom rules such as price:asc.
Typo tolerancetypoToleranceOn or off, minimum word sizes for one and two typos, and words, attributes and numbers where typos are not allowed.
SynonymssynonymsWords that should match each other.
Words & tokensstopWords, dictionary, separatorTokens, nonSeparatorTokensIgnored words, custom dictionary entries and how text is split into words.
Facets, pagination & searchfaceting, pagination, proximityPrecision, searchCutoffMs, prefixSearch, facetSearchMaximum values per facet and facet sorting, the maximum total hits, word-proximity precision, a search time limit, prefix search and facet search.
Localized attributeslocalizedAttributesForce the languages used to tokenize some fields.
EmbeddersembeddersVector embedders for semantic and hybrid search (source, model or user-provided dimensions, document template, binary quantization…).

Desired settings in a task are validated when the task is saved: unknown keys are rejected so a typo cannot silently do nothing.

Managed settings and drift

With Manage index settings on, a task owns the settings it declares:

  • When the task starts, the live settings are compared with the desired ones and only the differences are applied (applying 3 changed index settings in the log).
  • The task's Index settings tab shows desired versus live values, highlights drift (someone changed the index by hand, or a deployment changed the task), and applies the desired settings with one click.
  • Only keys present in the desired settings are compared, so settings the task does not manage never show up as drift. Lists whose order does not matter (filterable and sortable attributes, for example) are compared as sets.
  • If Meilisearch rejects the update when the task starts, the start fails with Meilisearch's message (apply settings: …) and the task keeps retrying with backoff until the settings are fixed. Desired settings that cannot be parsed fail the task outright.

Primary key guard

When a task starts, it makes sure its index uses the task's primary key field:

  • A missing index is created with that primary key.
  • An empty index with another primary key is switched to it.
  • An index that has documents and another primary key is refused, and the task fails: index "products" uses "sku" but the task writes "id" and the index holds 1200 documents; use a new index, change mapping.primaryKeyField, or resync with zero-downtime enabled. A zero-downtime resync builds a fresh shadow index with the new key and swaps it in.

Instance-level tools

The task queue, dumps, snapshots and experimental features belong to a whole Meilisearch instance and live on the destination's page; see per-instance pages. The top-level Meilisearch tasks page shows the task queue of every instance.

The Meilisearch tasks page listing document additions, settings updates and swaps per instance with status, duration and the CDC task that sent them
The Meilisearch task queue, per instance.

Meili CDC user guide · last updated 2026-10-26 · Edit this page on GitHub

meilisearch-cdc is open source. Meilisearch is a trademark of Meili SAS; this project is not affiliated with it.