Skip to content

Export/Transfert #5713

@Kerollmops

Description

@Kerollmops

Related product team resources: PRD (internal only)
Related product discussion:

Motivation

Make Meilisearch capable of exporting the settings and documents of given indexes to another instance, and reducing the burden of creating dumps and waiting a long time to see the documents indexed.

Usage

https://www.notion.so/meilisearch/Export-Transfert-documents-between-instances-21e4b06b651f8018b2e3c4fa1177aebf

TODO

Are you modifying a database?

  • If not, add the no db change label to your PR, and you're good to merge.
  • If yes, add the db change label to your PR. You'll receive a message explaining you what to do.

Reminders when modifying the API

  • Update the openAPI file with utoipa:
    • If a new module has been introduced, create a new structure deriving the OpenAPI proc-macro and nest it in the main openAPI structure.
    • If a new route has been introduced, add the path decorator to it and add the route at the top of the file in its openAPI structure.
    • If a structure which is deserialized or serialized in the API has been introduced or modified, it must derive the schema or the IntoParams proc-macro.
      If it's a new structure you must also add it to the big list of structures in the main OpenApi structure.
    • Once everything is done, start Meilisearch with the swagger flag: cargo run --features swagger, open http://localhost:7700/scalar on your browser, and ensure everything works as expected.
    • For more info, refer to this presentation.

Reminders when modifying the Setting API

  • Ensure the new setting route is at least tested by the test_setting_routes macro
  • Ensure Analytics are fully implemented
  • Ensure the dump serializing is consistent with the /settings route serializing, e.g., enums case can be different (camelCase in route and PascalCase in the dump)

Special cases when adding a setting for an experimental feature

  • ⚠️ API stability: The setting does not appear on the main settings route when the feature has never been enabled (e.g. mark it Unset when returned from the index in this situation. See an example)
  • The setting cannot be set when the feature is disabled, either by the main settings route or the subroute (see validate_settings function)
  • If possible, the setting is reset when the feature is disabled (hard if it requires reindexing)

Impacted teams

@meilisearch/docs-team & @meilisearch/integration-team

Metadata

Metadata

Assignees

No one assigned

    Labels

    impacts docsThis issue involves changes in the Meilisearch's documentationimpacts integrationsThis issue involves changes in the Meilisearch's integrationsv1.16.0PRs/issues solved in v1.16.0 released on 2025-08-04

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions