Skip to content

Update getmeili/meilisearch Docker tag to v1.34.3 - autoclosed#155

Closed
renovate[bot] wants to merge 1 commit intomainfrom
renovate/getmeili-meilisearch-1.x
Closed

Update getmeili/meilisearch Docker tag to v1.34.3 - autoclosed#155
renovate[bot] wants to merge 1 commit intomainfrom
renovate/getmeili-meilisearch-1.x

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate Bot commented Dec 15, 2025

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Update Change
getmeili/meilisearch minor v1.12.3v1.34.3
getmeili/meilisearch minor v1.13.3v1.34.3

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

meilisearch/meilisearch (getmeili/meilisearch)

v1.34.3

Compare Source

🐛 Bug Fixes

Full Changelog: meilisearch/meilisearch@v1.34.2...v1.34.3

v1.34.2

Compare Source

This patch fixes an accidental breaking change in v1.34.1 where Meilisearch would not start with a configuration file if experimental_allowed_ip_networks was not defined.

  • Meilisearch Cloud users do not need to update as they were not affected by this regression
  • We recommend that OSS users upgrade to v1.34.2

Full Changelog: meilisearch/meilisearch@v1.34.1...v1.34.2

v1.34.1

Compare Source

In Meilisearch v1.34.1, we released a security fix that affect web queries initiated by Meilisearch.

🔐 Security

  • Cloud users: no action is needed. We found no evidence of exploitation on Meilisearch Cloud and the Cloud is protected at the infrastructure level.
  • Open-source users: if you allow untrusted users to configure webhooks, embedders or network of machines, we recommend you update to Meilisearch v1.34.1

In Meilisearch versions v1.8 to v1.34.0, a user with an API key with write permissions to the configuration of the Meilisearch instance could set up Meilisearch to send POST or GET requests to domains and IPs local to the private network of the Meilisearch instance, effectively bypassing the firewall. The vulnerability has not yet been assigned a CVE number; it has CVE Request 1975471 for CVE ID.

Meilisearch v1.34.1 fixes the vulnerability by forbidding Meilisearch from making any requests to a host resolving to a non-global IP, in the sense of the IANA IPv4 Special-Purpose Address Registry or the IANA IPv6 Special-Purpose Address Registry. If you need this functionality in your Meilisearch instance, you can set private IP networks as allowed with the --experimental-allow-ip-networks parameter after reviewing the security implications.

This is a breaking change, which is allowed for security reasons.

Allowing non-global IP networks

The --experimental-allow-ip-networks CLI flag and the MEILI_EXPERIMENTAL_ALLOW_IP_NETWORKS environment variable control the behavior of Meilisearch with regards to non-global IP networks, with the CLI flag taking precedence over the environment variable when both are specified.

  • When missing, the default is to reject all web requests resolving to a non-global IP.
  • When set to a comma-separated list of CIDR-formatted networks (e.g. 192.168.0.0/16,10.0.0.0), then web requests to the networks from the list will be permitted. Web requests to the non-global IPs not part of the list will still be rejected.
  • When set to any, all web requests will be permitted regardless of the target IP, similar to the behavior of Meilisearch v1.34.0 and lower. Use this option when you control both the machine and the configuration of the deployed Meilisearch instance.

Acknowledgments

Thanks to Gabriel Rodrigues (aka Texugo), for reporting this vulnerability and for helping us improve the security of Meilisearch.

v1.34.0

Compare Source

🌈 Improvements

Easy search over your network of machines

useNetwork field in POST /indexes/{:indexUid}/search

The search query object passed in the body of POST /indexes/{:indexUid}/search now accepts an optional boolean useNetwork. When present and set to true, the search is executed "as-if" it was a remote federated search over all remotes in the network.

That is, the following:

Search request
// POST /indexes/movies/search
{
  "q": "Batman dark knight returns 1",
  "filter": "genres IN [Action, Adventure]",
  "facets": ["genres"],
  "useNetwork": true, // ✨ NEW
  "limit": 5
}

Is executed by Meilisearch as if it was the following, assuming a network of 3 Meilisearch instances with names "0", "1" and "2":

Equivalent multi-search request
// POST /multi-search
{
    "federation": {
        "limit": 5,
        "facetsByIndex": {
            "movies": [
                "genres"
            ]
        },
        "merge": {}
    },
    "queries": [
        {
            "indexUid": "movies",
            "federationOptions": {
                "remote": "0"
            },
            "q": "Batman dark knight returns 1",
            "filter": "genres IN [Action, Adventure]"
        },
        {
            "indexUid": "movies",
            "federationOptions": {
                "remote": "1"
            },
            "q": "Batman dark knight returns 1",
            "filter": "genres IN [Action, Adventure]"
        },
        {
            "indexUid": "movies",
            "federationOptions": {
                "remote": "2"
            },
            "q": "Batman dark knight returns 1",
            "filter": "genres IN [Action, Adventure]"
        }
    ]
}

Resulting in:

Search Response
{
  "hits": [
    {
      "id": 123025,
      "title": "Batman: The Dark Knight Returns, Part 1",
      "overview": "Batman has not been seen for ten years. A new breed of criminal ravages Gotham City, forcing 55-year-old Bruce Wayne back into the cape and cowl. But, does he still have what it takes to fight crime in a new era?",
      "genres": [
        "Action",
        "Animation",
        "Mystery"
      ],
      "poster": "https://image.tmdb.org/t/p/w500/kkjTbwV1Xnj8wBL52PjOcXzTbnb.jpg",
      "release_date": 1345507200,
      "_federation": {
        "indexUid": "mieli",
        "queriesPosition": 2,
        "weightedRankingScore": 0.9894586894586894,
        "remote": "2"
      }
    },
    {
      "id": 142061,
      "title": "Batman: The Dark Knight Returns, Part 2",
      "overview": "Batman has stopped the reign of terror that The Mutants had cast upon his city.  Now an old foe wants a reunion and the government wants The Man of Steel to put a stop to Batman.",
      "genres": [
        "Action",
        "Animation",
        "Mystery"
      ],
      "poster": "https://image.tmdb.org/t/p/w500/arEZYd6uMOFTILne9Ux0A8qctMe.jpg",
      "release_date": 1357171200,
      "_federation": {
        "indexUid": "mieli",
        "queriesPosition": 1,
        "weightedRankingScore": 0.9894558963186414,
        "remote": "1"
      }
    },
    {
      "id": 16234,
      "title": "Batman Beyond: Return of the Joker",
      "overview": "The Joker is back with a vengeance, and Gotham's newest Dark Knight needs answers as he stands alone to face Gotham's most infamous Clown Prince of Crime.",
      "genres": [
        "Animation",
        "Family",
        "Action",
        "Science Fiction"
      ],
      "poster": "https://image.tmdb.org/t/p/w500/7RlBs0An83fqAuKfwH5gKMcqgMc.jpg",
      "release_date": 976579200,
      "_federation": {
        "indexUid": "mieli",
        "queriesPosition": 1,
        "weightedRankingScore": 0.9427964918160996,
        "remote": "1"
      }
    },
    {
      "id": 155,
      "title": "The Dark Knight",
      "overview": "Batman raises the stakes in his war on crime. With the help of Lt. Jim Gordon and District Attorney Harvey Dent, Batman sets out to dismantle the remaining criminal organizations that plague the streets. The partnership proves to be effective, but they soon find themselves prey to a reign of chaos unleashed by a rising criminal mastermind known to the terrified citizens of Gotham as the Joker.",
      "genres": [
        "Drama",
        "Action",
        "Crime",
        "Thriller"
      ],
      "poster": "https://image.tmdb.org/t/p/w500/qJ2tW6WMUDux911r6m7haRef0WH.jpg",
      "release_date": 1216166400,
      "_federation": {
        "indexUid": "mieli",
        "queriesPosition": 1,
        "weightedRankingScore": 0.5784178187403994,
        "remote": "1"
      }
    },
    {
      "id": 49026,
      "title": "The Dark Knight Rises",
      "overview": "Following the death of District Attorney Harvey Dent, Batman assumes responsibility for Dent's crimes to protect the late attorney's reputation and is subsequently hunted by the Gotham City Police Department. Eight years later, Batman encounters the mysterious Selina Kyle and the villainous Bane, a new terrorist leader who overwhelms Gotham's finest. The Dark Knight resurfaces to protect a city that has branded him an enemy.",
      "genres": [
        "Action",
        "Crime",
        "Drama",
        "Thriller"
      ],
      "poster": "https://image.tmdb.org/t/p/w500/vzvKcPQ4o7TjWeGIn0aGC9FeVNu.jpg",
      "release_date": 1342396800,
      "_federation": {
        "indexUid": "mieli",
        "queriesPosition": 2,
        "weightedRankingScore": 0.5772657450076805,
        "remote": "2"
      }
    }
  ],
  "query": "Batman dark knight returns 1",
  "processingTimeMs": 173,
  "limit": 5,
  "offset": 0,
  "estimatedTotalHits": 47,
  "facetDistribution": {
    "genres": {
      "Action": 46,
      "Adventure": 15,
      "Animation": 34,
      "Comedy": 3,
      "Crime": 14,
      "Drama": 6,
      "Family": 15,
      "Fantasy": 8,
      "Horror": 1,
      "Mystery": 4,
      "Romance": 1,
      "Science Fiction": 14,
      "TV Movie": 4,
      "Thriller": 4,
      "Western": 1
    }
  },
  "facetStats": {},
  "requestUid": "019bbcf4-a609-7701-8d82-d370611adfb3",
  "remoteErrors": {}
}

useNetwork requires the network experimental feature to be enabled.

useNetwork query parameter in GET /indexes/{:indexUid}/search

Passing useNetwork=true as a query parameter to GET /indexes/{:indexUid}/search has the same effect as passing useNetwork: true as a field parameter to POST /indexes/{:indexUid}/search

.queries[].useNetwork field in POST /multi-search
  • useNetwork can also be passed as a field of the individual queries inside of a multi-search request.
  • When used on a query in a non-federated search request, it has the same effect as on POST /indexes/{:indexUid}/search for that query
  • When used on a query in a federated search request, the request is executed "as-if" one query per remote of the network had been performed.

Federated search example:

Multi-search request
{
    "federation": {
        "limit": 5
    },
    "queries": [
        {
            "q": "Batman returns",
            "indexUid": "mieli",
            "useNetwork": true
        },
        {
            "q": "Superman returns",
            "indexUid": "mieli",
            "useNetwork": true
        }
    ]
}
Multi-search response
{
  "hits": [
    {
      "id": 364,
      "title": "Batman Returns",
      "overview": "While Batman deals with a deformed man calling himself the Penguin, an employee of a corrupt businessman transforms into the Catwoman.",
      "genres": [
        "Action",
        "Fantasy"
      ],
      "poster": "https://image.tmdb.org/t/p/w500/jKBjeXM7iBBV9UkUcOXx3m7FSHY.jpg",
      "release_date": 708912000,
      "_federation": {
        "indexUid": "mieli",
        "queriesPosition": 0,
        "weightedRankingScore": 1.0,
        "remote": "1"
      }
    },
    {
      "id": 1452,
      "title": "Superman Returns",
      "overview": "Superman returns to discover his 5-year absence has allowed Lex Luthor to walk free, and that those he was closest to felt abandoned and have moved on. Luthor plots his ultimate revenge that could see millions killed and change the face of the planet forever, as well as ridding himself of the Man of Steel.",
      "genres": [
        "Science Fiction",
        "Action",
        "Adventure"
      ],
      "poster": "https://image.tmdb.org/t/p/w500/qIegbn6DSUYmggfwxOBNOVS35q.jpg",
      "release_date": 1151452800,
      "_federation": {
        "indexUid": "mieli",
        "queriesPosition": 1,
        "weightedRankingScore": 1.0,
        "remote": "0"
      }
    },
    {
      "id": 324249,
      "title": "Requiem for Krypton: Making 'Superman Returns'",
      "overview": "A detailed behind-the-scenes documentary on the making of Superman Returns.",
      "genres": [
        "Documentary"
      ],
      "poster": "https://image.tmdb.org/t/p/w500/eC1XKswKSoyDyJXXZszLTuwUHli.jpg",
      "release_date": 1164672000,
      "_federation": {
        "indexUid": "mieli",
        "queriesPosition": 1,
        "weightedRankingScore": 0.9907407407407408,
        "remote": "1"
      }
    },
    {
      "id": 294294,
      "title": "Saltwater",
      "overview": "This American Indie drama follows several endearing characters as they wade through life seeking happiness, peace and ultimately, love. Will (Ronnie Kerr, Vampire Boys 2, Shut Up and Kiss Me) leaves the Navy after many years, soon reunites old friends and begins to start his new civilian life. His friend Rich (Bruce L Hart) tries to set him up with ruggedly handsome Josh (Ian Roberts-a former Australian professional rugby player, actor and model-Cedar Boys, Superman Returns, Little Fish). While there is immense chemistry between the two, timing and certain ideals never seem to align. When a shocking tragedy happens the two are paired up to pick up the pieces and sort through the after effects. Saltwater is a story about men of all ages, finding love, losing friends, navigating their way through life and knowing it's the journey rather then the destination that's important.",
      "genres": [
        "Romance",
        "Drama"
      ],
      "poster": "https://image.tmdb.org/t/p/w500/bDnLdYqpH9abHo4ASMPKiInx8dm.jpg",
      "release_date": 1342310400,
      "_federation": {
        "indexUid": "mieli",
        "queriesPosition": 1,
        "weightedRankingScore": 0.966931216931217,
        "remote": "1"
      }
    },
    {
      "id": 142061,
      "title": "Batman: The Dark Knight Returns, Part 2",
      "overview": "Batman has stopped the reign of terror that The Mutants had cast upon his city.  Now an old foe wants a reunion and the government wants The Man of Steel to put a stop to Batman.",
      "genres": [
        "Action",
        "Animation",
        "Mystery"
      ],
      "poster": "https://image.tmdb.org/t/p/w500/arEZYd6uMOFTILne9Ux0A8qctMe.jpg",
      "release_date": 1357171200,
      "_federation": {
        "indexUid": "mieli",
        "queriesPosition": 0,
        "weightedRankingScore": 0.8697089947089947,
        "remote": "1"
      }
    }
  ],
  "processingTimeMs": 247,
  "limit": 5,
  "offset": 0,
  "estimatedTotalHits": 97,
  "requestUid": "019bbd3a-5106-70e0-94fc-f58b2f0c28c8",
  "remoteErrors": {}
}
Limitations
  • Facet search referencing useNetwork are not supported
  • The chat route cannot use useNetwork at the moment: doing so is not trivial implementation-wise, because chat route expects to be able to open the index (to fetch chat configs), but federated search only opens the indexes once during a short critical section.

By @​dureuill in #​6101

Federated search supports page and hitsPerPage

Pass federation.page and federation.hitsPerPage with the same meaning as in a regular search request to use exhaustive pagination in the federated search

By @​dureuill in #​6101

Speed up settings changes when removing searchable

The settings indexer is more efficient when users are removing searchable attributes from the searchable fields.

By @​VedantMadane in #​6109

🔒 Security

Solves a low-severity timing attack vulnerability on key comparison by using constant-time comparison

By @​curquiza in #​6077

🔩 Maintenance

Remove some unwanted dependencies

New Contributors

❤️ Thanks again @​VedantMadane for the contribution to this release!

Full Changelog: meilisearch/meilisearch@v1.33.1...v1.34.0

v1.33.1: 🐞

Compare Source

In Meilisearch v1.33.1, we released a security fix that affected the dump import, improvements to vector store relevance in massive databases, and a fix related to ranking scores.

🔐 Security Fix
  • Cloud users: you don't need to do anything. We found no evidence of exploitation of this vulnerability on Meilisearch Cloud.
  • Open-source users: if you allow importing dumps from an untrusted source, we recommend you update to v1.33.1

All versions of Meilisearch before v1.33.0 are vulnerable to a path traversal vulnerability involving the dump import functionality.

Importing a specially crafted dump could result in giving access to the Meilisearch instance to arbitrary, specifically formatted files, present on the file system of the Meilisearch instance.

✨ Enhancements
  • We updated the vector store to trigger linear scanning even on bigger databases, leading to improved performance and so better result quality when the search cutoff is reached. This applies in particular when the number of filtered candidates is small relative to the number of documents in the index by @​Kerollmops in #​6113.
🐛 Bug Fixes
  • We fixed a bug where only the first non-blocking buckets were taken for the non-final ranking rules. This improves the quality of search results when the search cutoff triggers, especially when vector search and a sort are involved by @​Kerollmops in #​6113.

Full Changelog: meilisearch/meilisearch@v1.33.0...v1.33.1

v1.33.0: 🐞

Compare Source

✨ Enhancement
  • Add /fields route to get all the fields of an index by @​YoEight in #​6082
    Adds a new POST /indexes/{indexUid}/fields endpoint that returns detailed metadata about all fields in an index. This endpoint provides comprehensive information about each field's configuration, including display, search, filtering, and localization settings.

  • Implement parallel cleanup of old field IDs by @​Kerollmops in #​6100
    We reduce the time required to perform the dumpless upgrade for instances before v1.32.0 by multi-threading database fetches. By doing that, we noticed improvements from 2 hours and 50 minutes to a bit less than 7 minutes.

  • Bump hannoy to 0.1.4-nested-rtxns by @​Kerollmops in #​6103
    We updated our internal vector store to speed up the dumpless upgrade by improving the graph rebuilding and improving the speed and relevance of the search by using the explore factor as a limit to stop document searches rather than the query limit.

🪲 Bug fixes
🔒 Security
🔩 Miscellaneous

Thank you @​Vipul-045 for your first contribution ❤️

v1.32.2: 🐟

Compare Source

🐛 Bug fixes
  • Do not panic when doing a dumpless upgrade on empty indexes with configured embeddings by @​Kerollmops in #​6102

Full Changelog: meilisearch/meilisearch@v1.32.1...v1.32.2

v1.32.1: 🐟

Compare Source

🌈 Improvements

Skip cleaning up the field-ID-based databases

Introduce a MEILI_EXPERIMENTAL_DISABLE_FID_BASED_DATABASES_CLEANUP env var to opt out of the field ID-based database cleanup when upgrading a Meilisearch from versions inferior to 1.32.0.

by @​ManyTheFish in #​6096

Full Changelog: meilisearch/meilisearch@v1.32.0...v1.32.1

v1.32.0: 🐟

Compare Source

🌈 Improvements

Log Search performance trace

Introduces comprehensive progress tracking and logging for search operations in Meilisearch. It adds detailed timing information for each step of the search process, enabling better observability and performance analysis.

by @​ManyTheFish in #​6072

Extract document operations from payloads in parallel

We accelerate document indexing by processing a large number of tasks in batches or a large number of records in parallel. We expedited the preparation of the payloads by extracting the various changes and assigning internal IDs in parallel. We achieved a 7x speedup on a four-million-document insertion using four CPUs, and the performance scales with the number of CPUs.

The indexedDocuments field in tasks using skipCreation no longer precisely reflects the number of document operations performed, specifically for POST and PUT operations. This count may be higher than the actual number of operations, but it doesn't affect the computation; only the reported count is impacted. We prioritize speed over perfect accuracy here, and the documents are still correctly indexed as before.

by @​Kerollmops in #​6080

🐛 Bug fixes

Vector sort: Bucket documents with same similarity

Fixed vector sort bucketing so documents with identical similarity scores are grouped together, ensuring subsequent ranking rules are applied correctly.

by @​dureuill in #​6081

Properly Delete Documents from FID-Based Databases

Fixes a bug where changing searchableAttributes from ["*"] to a subset of fields left orphaned data in fid-based databases, causing corruption and warnings during search.

by @​ManyTheFish in #​6076

Rebuild the graph links when dumpless-upgrading

Bumps hannoy to v0.1.3-nested-rtxns, which fixes graph-related recall issues and adds a method to rebuild graph links to recover previously malformed graphs. Also fixes a minor issue in the dumpless upgrade flow where the upgrade description was not displayed correctly and related operations were not properly associated with the upgrade.

by @​Kerollmops in #​6055

🛠️ Maintenance and Misc.

Update JS SDKs tests to use pnpm instead of yarn

Updated the JavaScript SDK tests to use pnpm instead of yarn in CI workflows, switching the package manager across test configurations to ensure the SDK test suite runs correctly and consistently with the current tooling.

by @​Strift in #​6075

Adapt JS tests in SDK tests CI

Updated the SDK tests CI workflow for the JavaScript SDKs

by @​curquiza in #​6050

Bump lru from 0.16.2 to 0.16.3

Fix Stacked Borrows violation in IterMut.

by @​dependabot[bot] in #​6087

Full Changelog: meilisearch/meilisearch@v1.31.0...v1.32.0

v1.31.0: 🦃

Compare Source

🌈 Improvements

🗄️ [Enterprise Edition] Make the S3-streaming snapshots an Enterprise Edition feature

The recently introduced S3-streaming snapshots feature is now available as an Enterprise Edition feature. From now on, you'll need a license to use this feature when using Meilisearch as a self-hosted solution. Note that this version introduces a breaking change regarding the S3-streaming snapshot feature, which is no longer available in the Community Edition; however, on-disk snapshots remain accessible. You can read our BUSL license for contact information, if you like. Note that if you are using the Community Edition of Meilisearch between version 1.25 and this release, you can freely use the S3 Streaming feature without an Enterprise Edition license.

by @​Kerollmops in #​6057

🔏 [Enterprise Edition] Support AWS IRSA to authenticate to S3 for snapshotting

We just introduced support for IRSA authentication to do snapshots on AWS. IRSA allows the use of short-lived access and secret keys to upload snapshots through S3. This feature is available under the Enterprise Edition and can be accessed through two experimental CLI parameters.

by @​paulden in #​6044

✍️ Allow strict document update without creating missing documents

Adds an optional skipCreation boolean query parameter to POST and PUT on /indexes/{index}/documents. When set to true, documents that don't exist in the index are silently ignored rather than created. Default is false, preserving existing behavior.

by @​YoEight in #​6053

🐛 Bug fixes

🛠️ Maintenance and Misc.

v1.30.1: 🐸

Compare Source

What's Changed

🐛 Bug Fixes

Fix task attribution during index swap to prevent cross-index task loss by @​YoEight in #​6059

This change fixes the parenting of the tasks when doing an index swap.

Hotfix: log a warning when FieldidsWeightsMap is missing entry by @​ManyTheFish in #​6064

This hotfix avoids the encounter of following error during a search request:

{
  "message": "Inside `<query>`: Index `<index_uid>`: internal: missing <field_id> in the fieldids weights mapping.",
  "code": "internal",
  "type": "internal",
  "link": "https://docs.meilisearch.com/errors#internal"
}

🫂 New Contributors

v1.30.0: 🐸

Compare Source

🌈 Improvements
Up and down network scaling

Since v1.19.0, Meilisearch Enterprise Edition allows the automatic sharding of documents over multiple Meilisearch instances, enabling scaling to more documents than a single instance would accommodate.

Meilisearch v1.30.0 adds the ability to modify the number of participants in sharding, without having to start over sending documents to a new cluster containing the number of desired machines.

To make this possible, Meilisearch v1.30.0 introduces breaking changes. These breaking changes only affect the users of the experimental network feature who enabled automatic sharding (network.sharding = true). Users of the stable features are not affected.

Usage
Setting up the initial network
  1. Pick a leader machine that will receive all tasks. Calling a route that creates a dcument, settings or network-related task on a machine that is not the leader will now return an error.
  2. Send your network topology to the leader by calling PATCH /network:
// PATCH /network
{
  "self": "ms0",
  "leader": "ms0", // must be equal to `self`
  "remotes": {
    "ms0": {
      "url": "URL_OF_MS0",
      "searchApiKey": "SEARCH_API_KEY_OF_MS0",
      "writeApiKey": "WRITE_API_KEY_OF_MS0",
    },
    "ms1": {
      "url": "URL_OF_MS1",
      "searchApiKey": "SEARCH_API_KEY_OF_MS1",
      "writeApiKey": "WRITE_API_KEY_OF_MS1",
    }
  }
}
  1. The network is automatically propagated to other members of the network.
  2. Send settings and documents as usual, but exclusively to the leader. They will be propagated to all participants in the network, and each participant will process a piece of the documents.
Details
Upgrading from v1.29 or earlier
  1. We recommend using the experimental dumpless upgrade feature to go from Meilisearch v1.13+ to Meilisearch v1.29.
  2. When using the experimental dumpless upgrade and the Meilisearch instance already has a network instance with sharding set to true, then the network object will be modified so that the leader is the first remote in alphabetic order. For instance, if you network contains remotes: A, B, C, the leader will be set to A.
Adding a new remote
  1. Call PATCH /network on the leader with the information about the new remote:
{
  "remotes": {
  // add information about the new remote
  "ms2": {
      "url": "URL_OF_MS2",
      "searchApiKey": "SEARCH_API_KEY_OF_MS2",
      "writeApiKey": "WRITE_API_KEY_OF_MS2",
    }
  // information about existing remotes does not need to be repeated
}
  1. The new network will be propagated from the leader to all remotes (including the new remote ms2).
  2. All remotes will register a new networkTopologyChange task that will "rebalance" the documents between the existing remotes and the new remote, that is, ms0 and ms1 will send parts of their documents to ms2
Removing a remote
  1. Call PATCH /network on the leader by setting any removed remote to null:
{
  "remotes": {
  // set removed remote to null
  "ms2": null
  // information about existing remotes does not need to be repeated
}
  1. The new network will be propagated from the leader to all remotes (including to the old remote ms2 that will then no longer participate in the network).
  2. All remotes will register a new networkTopologyChange task that will "rebalance" the documents between the remaining remotes, that is, ms2 will send its documents between ms0 and ms1
List of changes
List of changes, some of which are breaking
  1. Breaking change: The Network object returned or edited by the /network route is modified in the following way:
    • the sharding boolean is removed
    • a leader field is added as an optional string. When it is not null, it has the same effect (and more) than having sharding: true in the previous iteration of the Network object. The leader is used as a check when receiving task creation requests.
    • a version field is added as a UUID, defaulting to the null UUID. The version is used when processing tasks.
  2. Breaking change: When a network.leader is set, calling one of the following routes will fail with not_a_leader error if the target's network.self is not the same as its network.leader:
    • POST /indexes
    • PATCH/DELETE /indexes/{:indexUid}
    • POST/PUT/DELETE /indexes/{:indexUid}/documents
    • POST /indexes/{:indexUid}/documents/delete
    • POST /indexes/{:indexUid}/documents/delete-batch
    • POST /indexes/{:indexUid}/documents/edit
    • PATCH/DELETE /indexes/{:indexUid}/settings and settings sub-routes
    • PATCH /network if the target is the new leader
    • POST /swap-indexes
  3. Breaking change: when a leader is set, PATCH /network no longer returns a Network object. Rather, it spawns a new NetworkTopologyChange task, and returns the summarized task view.
  4. Breaking change: Tasks are duplicated by the leader to the entire network when calling the following routes:
    • POST /indexes (new to this PR)
    • PATCH/DELETE /indexes/{:indexUid} (new to this PR)
    • POST/PUT/DELETE /indexes/{:indexUid}/documents (was already the case before this PR)
    • POST /indexes/{:indexUid}/documents/delete (was already the case before this PR)
    • POST /indexes/{:indexUid}/documents/delete-batch (was already the case before this PR)
    • POST /indexes/{:indexUid}/documents/edit (was already the case before this PR)
    • PATCH/DELETE /indexes/{:indexUid}/settings and settings sub-routes (new to this PR)
    • PATCH /network if the target is the new leader (new to this PR)
    • POST /swap-indexes (new to this PR)
  5. New NetworkTopologyChange tasks that perform the following:
    1. Execute any remaining task to process with a network.version lower than the network task's version
    2. Iterate over all documents in all indexes, determine their new shard, and send the document to the remote that must now have it in the new version , deleting it from the local DB
      • The export route code has been factored and specialized to allow this
      • Should the export to a remote fail, the corresponding documents are kept locally
      • If there are no documents to send for an index, still call the documents addition with an empty payload and appropriate headers containing the expected metadata
      • If there are no documents to send for an entire remote, call the network route with specific headers containing the expected metadata
    3. Wait for and process tasks from the remotes of the previous version of the network.
  6. Breaking change: When importing dumps, we drop the self and leader from the network
  7. Network topology change tasks can be cancelled. In this case the state will be the current one (any moved documents will stay that way). Cancellation needs to happen on all machines.

by @​dureuill in #​6000

🛠️ Maintenance
Asset availability note

🌈 The Meilisearch binary is available again for meilisearch-enterprise-macos-amd64 and meilisearch-macos-amd64. It was not available for Meilisearch v1.29.

Full Changelog: meilisearch/meilisearch@v1.29.0...v1.30.0

v1.29.0: 🐑

Compare Source

Build compatibility note

The git binary must now be present at build time to populate the commitSha1 field of the /version field.

This change was made for build performance reasons.

by @​dureuill in #​6030

🌈 Improvements

Another piece of the settings indexer is available: searchable and exact attributes

The new settings indexer scales better, supports near-instant cancellations and displays the progress of the indexing operation.

Previously, the new settings indexer was enabled only if the only changes in a settings batch were to embedder settings. In Meilisearch v1.29.0, the new settings indexer will be enabled if the change is any combination of:

  • searchableAttributes
  • exactAttributes
  • proximityPrecision
  • embedders (as before)

Any other change to settings appearing in a batch will cause the batch to use the legacy settings indexer.
Additionally, the new settings indexer is currently disabled by default for Cloud users.

OSS users who would like to disable the new settings indexer should pass the MEILI_EXPERIMENTAL_NO_EDITION_2024_FOR_SETTINGS environment variable to true.

by @​Kerollmops in #​5983

Enable the new vector store by default for new indexes

Meilisearch v1.21.0 introduced a new vector store backend providing better performance and relevancy.

Starting with v1.29.0, any newly created index will default to the new backend.
Existing indexes will be left unchanged.

It is still possible to explicitly choose the vector store backend, please refer to the relevant experimental feature discussion page.

by @​Kerollmops in #​6004

Support more models for huggingFace embedder

You can now select models with the XLM Roberta architecture when generating embeddings locally on CPU or GPU with the huggingFace embedder.

by @​qdequele in #​6018

🦋 Bug fixes

🔧 Maintenance and Misc.

Last week was a Quality of Life week, and while we still had improvements in the pipe, the bulk of our work was dedicated to maintenance tasks.

Most notably, the CI is now faster, going from over one hour to less than 30 minutes, and also more reliable as it automatically tests the dumpless upgrade.

  • New workload to run declarative tests. This is, in particular, very useful to automatically test the dumpless upgrade. By @​Mubelotix in #​5861
  • The code that applies the dumpless upgrade migrations was rewritten to make it easier to maintain. By @​dureuill in #​6029
  • We no longer run macOS and Windows tests at PR time. These CI jobs were very slow and given their limited impact they will only be run on the nightly builds. Ny @​Kerollmops in #​6021
  • Send notifications for Kubernetes integration when releasing by @​curquiza in #​6023
  • Introduce xtask sub-command to generate prototype tag names with the expected nomenclature by @​Kerollmops in #​6022
  • Fix misc. CI issues by @​dureuill in #​6026

Asset availability note

⚠️ The Meilisearch binary is not available for meilisearch-enterprise-macos-amd64 and meilisearch-macos-amd64 due to a compilation oversight. #​6037 aims at fixing this for future releases.

The more recent meilisearch-enterprise-macos-apple-silicon and meilisearch-macos-apple-silicon are fine.

Full Changelog: meilisearch/meilisearch@v1.28.2...v1.29.0

v1.28.2: 🐩

Compare Source

This release fixes a bug affecting the Prometheus metrics route in versions 1.28.0 and 1.28.1, specifically when the instance has too many tasks. The issue is visible as high memory usage and could cause the instance to be OOM-killed. If you are using the /metrics route, we recommend deleting all succeeded or failed tasks in the index using the dedicated route or upgrading to at least v1.28.2.

🐛 Bug fixes

Full Changelog: meilisearch/meilisearch@v1.28.1...v1.28.2

v1.28.1: 🐩

Compare Source

This release features two fixes: one to ensure that we correctly upload the Linux-amd64 binaries for the Community and Enterprise editions, and one contributed by an external developer to ensure that we still return documents that don't contain the sortable attribute after those that do.

🐛 Bug Fixes
🫂 New Contributors

Full Changelog: meilisearch/meilisearch@v1.28.0...v1.28.1

v1.28.0: 🐩

Compare Source

This release introduces improvements to language support and separates the community and enterprise binary editions. We now offer binaries under the BUSL-1.1 license, identified by the "enterprise" term in their names, in addition to our MIT-licensed binaries, which retain their original names. Docker images for the enterprise edition are available in the getmeili/meilisearch-enterprise repository.

📝 Licensing
  • Separation of EE and CE. CE remains the default binary, and the name does not change by Louis on #​6011
✨ Enhancement
  • Charabia v0.9.9: introduce a better word segmentation for Thai, Khmer, and German languages by @​ManyTheFish in #​6007
  • Expose batch progress traces on the metrics route to improve the indexing debugging experience by @​Kerollmops in #​5956
🔩 Miscellaneous
🫂 New Contributors

Full Changelog: meilisearch/meilisearch@v1.27.0...v1.28.0

v1.27.0: 🦮

Compare Source

This release improves the batch size for better performance. It also fixes bugs with the embedders that could skip some documents during generation and resolves an issue with the document route that displayed the same documents on multiple pages. It improves the quality of error messages when uploading snapshots to S3, which helps with debugging.

⚙️ Compatibility support
  • Update macOS platform version in the CI by @​Kerollmops in #​6001
    Meilisearch MacOS binaries now generated with MacOS Sonoma (macos-14)
✨ Enhancement
🪲 Bug fixes
  • Fix issue that could cause Meilisearch to skip some documents when performing embedding operations by @​dureuill in #​5995
    • Every available_parallelismth document in a batch was ignored for the purpose of embedding when using a Hugging Face embedder #​5976
    • Every 40th document in a batch was ignored for the purpose of embedding when using a REST embedder with only one embedding per request
    • To verify if documents in your database have been affected:
      1. enable the multimodal exp. feature
      2. search or fetch with filter: NOT _vectors EXISTS to find documents without vectors.
  • Fix /documents/fetch bug that could cause duplicated search results when paginating sorted documents by @​ManyTheFish in #​5999

Full Changelog: meilisearch/meilisearch@v1.26.0...v1.27.0

v1.26.0: 🐛

Compare Source

✨ Enhancements

Allow to attach custom metadata in the document addition or update tasks

  • To make it easier to keep track of which documents were processed by Meilisearch, it is now possible to attach an arbitrary string to all routes that create document-related tasks.
  • Tasks created with this custom metadata will display the passed metadata when accessed by the tasks route or sent in webhooks.
  • To use this feature, add the customMetadata query parameter to any supported route:
POST /indexes/{indexUid}/documents?customMetadata=my-metadata-for-the-task
  • Note that, as usual for query parameters, the value of the parameter must be URL-encoded.
  • List of supported routes:
POST /indexes/{indexUid}/documents
PUT /indexes/{indexUid}/documents
DELETE /indexes/{indexUid}/documents/{documentId}
POST /indexes/{indexUid}/documents/delete-batch
POST /indexes/{indexUid}/documents/delete
POST /indexes/{indexUid}/documents/edit
DELETE /indexes/{indexUid}/documents
  • Sample output of GET /tasks for tasks with metadata:
{
  "results": [
    {
      "uid": 37,
      "batchUid": 37,
      "indexUid": "mieli",
      "status": "succeeded",
      "type": "documentDeletion",
      "canceledBy": null,
      "details": {
        "deletedDocuments": 31944
      },
      "error": null,
      "duration": "PT0.511099S",
      "enqueuedAt": "2025-11-06T16:33:37.816237Z",
      "startedAt": "2025-11-06T16:33:37.821591Z",
      "finishedAt": "2025-11-06T16:33:38.33269Z",
      "customMetadata": "removeall"
    },
    {
      "uid": 36,
      "batchUid": 36,
      "indexUid": "movies",
      "status": "succeeded",
      "type": "documentAdditionOrUpdate",
      "canceledBy": null,
      "details": {
        "receivedDocuments": 31968,
        "indexedDocuments": 31944
      },
      "error": null,
      "duration": "PT3.192271S",
      "enqueuedAt": "2025-10-30T10:31:12.896073Z",
      "startedAt": "2025-10-30T10:31:12.911905Z",
      "finishedAt": "2025-10-30T10:31:16.104176Z",
      "customMetadata": "foo"
    }
  ],
  "total": 38,
  "limit": 2,
  "from": 36,
  "next": 35
}

by @​dureuill in #​5963

Support more models for huggingFace embedder

You can now select models with the modernBERT architecture when generating embeddings locally on CPU or GPU with the huggingFace embedder.

This unlocks for instance Ruri v3 and other models

by @​hayatosc in #​5980

🧪 Experimental: embedder failure modes

You can now decide to ignore some embedder-related errors. Either:

  1. Errors related to a document template not rendering properly
  2. Errors related to an embedding request to an embedder failing (this includes missing vectors in userProvided embedders)
  3. Or both kinds of errors.

When errors are ignored, the corresponding documents will not have embeddings, but the associated batch of tasks will not be marked as failed.

Of course, ignoring errors means that it is harder to notice an issue with embedders, so use this feature parsimoniously.

To enable the feature:

  • Customers of the Cloud, please ask the support.
  • OSS users, please use the MEILI_EXPERIMENTAL_CONFIG_EMBEDDER_FAILURE_MODES

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot changed the title Update getmeili/meilisearch Docker tag to v1.30.0 chore(deps): update getmeili/meilisearch docker tag to v1.30.0 Dec 17, 2025
@renovate renovate Bot force-pushed the renovate/getmeili-meilisearch-1.x branch from e079ff5 to 243b2f1 Compare December 18, 2025 18:31
@renovate renovate Bot changed the title chore(deps): update getmeili/meilisearch docker tag to v1.30.0 chore(deps): update getmeili/meilisearch docker tag to v1.30.1 Dec 18, 2025
@renovate renovate Bot force-pushed the renovate/getmeili-meilisearch-1.x branch from 243b2f1 to d568600 Compare December 22, 2025 18:46
@renovate renovate Bot changed the title chore(deps): update getmeili/meilisearch docker tag to v1.30.1 chore(deps): update getmeili/meilisearch docker tag to v1.31.0 Dec 22, 2025
@renovate renovate Bot changed the title chore(deps): update getmeili/meilisearch docker tag to v1.31.0 Update getmeili/meilisearch Docker tag to v1.31.0 Dec 25, 2025
@renovate renovate Bot changed the title Update getmeili/meilisearch Docker tag to v1.31.0 chore(deps): update getmeili/meilisearch docker tag to v1.31.0 Dec 28, 2025
@renovate renovate Bot changed the title chore(deps): update getmeili/meilisearch docker tag to v1.31.0 Update getmeili/meilisearch Docker tag to v1.31.0 Dec 28, 2025
@renovate renovate Bot force-pushed the renovate/getmeili-meilisearch-1.x branch from d568600 to 5672a91 Compare January 12, 2026 17:45
@renovate renovate Bot changed the title Update getmeili/meilisearch Docker tag to v1.31.0 Update getmeili/meilisearch Docker tag to v1.32.0 Jan 12, 2026
@renovate renovate Bot force-pushed the renovate/getmeili-meilisearch-1.x branch from 5672a91 to 9a21261 Compare January 14, 2026 13:07
@renovate renovate Bot changed the title Update getmeili/meilisearch Docker tag to v1.32.0 Update getmeili/meilisearch Docker tag to v1.32.1 Jan 14, 2026
@renovate renovate Bot force-pushed the renovate/getmeili-meilisearch-1.x branch from 9a21261 to 545830c Compare January 15, 2026 13:52
@renovate renovate Bot changed the title Update getmeili/meilisearch Docker tag to v1.32.1 Update getmeili/meilisearch Docker tag to v1.32.2 Jan 15, 2026
@renovate renovate Bot force-pushed the renovate/getmeili-meilisearch-1.x branch from 545830c to 7fc186b Compare January 19, 2026 10:58
@renovate renovate Bot changed the title Update getmeili/meilisearch Docker tag to v1.32.2 Update getmeili/meilisearch Docker tag to v1.33.0 Jan 19, 2026
@renovate renovate Bot force-pushed the renovate/getmeili-meilisearch-1.x branch from 7fc186b to 7dc27f5 Compare January 20, 2026 16:57
@renovate renovate Bot changed the title Update getmeili/meilisearch Docker tag to v1.33.0 Update getmeili/meilisearch Docker tag to v1.33.1 Jan 20, 2026
@renovate renovate Bot force-pushed the renovate/getmeili-meilisearch-1.x branch from 7dc27f5 to 41f3362 Compare January 26, 2026 10:08
@renovate renovate Bot changed the title Update getmeili/meilisearch Docker tag to v1.33.1 Update getmeili/meilisearch Docker tag to v1.34.0 Jan 26, 2026
@renovate renovate Bot force-pushed the renovate/getmeili-meilisearch-1.x branch from 41f3362 to 8f7d1b6 Compare January 27, 2026 12:52
@renovate renovate Bot changed the title Update getmeili/meilisearch Docker tag to v1.34.0 Update getmeili/meilisearch Docker tag to v1.34.1 Jan 27, 2026
@renovate renovate Bot force-pushed the renovate/getmeili-meilisearch-1.x branch from 8f7d1b6 to 804a7f3 Compare January 28, 2026 12:53
@renovate renovate Bot changed the title Update getmeili/meilisearch Docker tag to v1.34.1 Update getmeili/meilisearch Docker tag to v1.34.2 Jan 28, 2026
@renovate renovate Bot force-pushed the renovate/getmeili-meilisearch-1.x branch from 804a7f3 to a185650 Compare January 28, 2026 21:59
@renovate renovate Bot changed the title Update getmeili/meilisearch Docker tag to v1.34.2 Update getmeili/meilisearch Docker tag to v1.34.3 Jan 28, 2026
@renovate renovate Bot changed the title Update getmeili/meilisearch Docker tag to v1.34.3 Update getmeili/meilisearch Docker tag to v1.34.3 - autoclosed Feb 1, 2026
@renovate renovate Bot closed this Feb 1, 2026
@renovate renovate Bot deleted the renovate/getmeili-meilisearch-1.x branch February 1, 2026 14:22
@Keyruu Keyruu restored the renovate/getmeili-meilisearch-1.x branch February 1, 2026 14:23
@Keyruu Keyruu deleted the renovate/getmeili-meilisearch-1.x branch March 11, 2026 22:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants