Skip to content

Releases: meilisearch/meilisearch

v1.13.0 🕊️

17 Feb 08:29
5e78036
Compare
Choose a tag to compare

Meilisearch v1.13 stabilizes AI-powered search integration! 🎉 This release also introduces two new experimental features: upgrading to new Meilisearch releases without generating a dump and making federated requests across multiple Meilisearch instances.

🧰 All official Meilisearch integrations (including SDKs, clients, and other tools) are compatible with this Meilisearch release. Integration deployment takes 4 to 48 hours after a new version becomes available.

Some SDKs might not include all new features. Consult the project repository for detailed information. Is a feature you need missing from your chosen SDK? Create an issue letting us know you need it, or, for open-source karma points, open a PR implementing it (we'll love you for that ❤️).

New features and updates 🔥

AI-powered search and vector store stabilization

With v1.13, AI-powered search is available to all users by default and no longer requires manual activation.

Breaking Changes

  • vectorStore is no longer an accepted value for the /experimental-features route
  • Ollama URLs must end with either /api/embed or /api/embeddings
  • Modified error codes:
    • invalid_embedder has been split into invalid_search_embedder and invalid_similar_embedder. These codes are returned when the embedder parameter of a request to /search, /multi-search or /similar specifies a non-existing embedder or is not a string
    • invalid_hybrid_query has been renamed to invalid_search_hybrid_query. It is returned when the hybrid parameter contains unknown keys or is not either null or an object

Done by @dureuill in #5232 & #5234

Experimental feature: Dumpless upgrades

Use --experimental-dumpless-upgrade after updating the Meilisearch binary to migrate to a new release:

./meilisearch --experimental-dumpless-upgrade

This faster and more efficient process does not require you to generate a dump and pass it to Meilisearch when upgrading to a new release.

Warning

Meilisearch strongly recommends you generate a backup snapshot before migrating. This is an experimental feature, and failed upgrades may lead to database corruption.

Read more about it on the dedicated product discussion.

Done by @irevoire and @dureuill in #5264

Experimental feature: Remote federated search requests

Use remote federated search requests together with the /multi-search route to query multiple Meilisearch instances simultaneously. This is particularly useful when handling very large databases.

First, use the /experimental-features route to enable network:

curl \
  -X PATCH 'MEILISEARCH_URL/experimental-features/' \
  -H 'Content-Type: application/json'  \
  --data-binary '{
    "network": true
  }'

Next, set up your network of Meilisearch instances with a call to PATCH /network configuring one self and multiple remotes:

curl \
  -X PATCH 'MEILISEARCH_URL/network/' \
  -H 'Content-Type: application/json'  \
  --data-binary '{
    "remotes": {
      "ms-0": {
        "url": "http://ms-1235.example.meilisearch.io",
        "searchApiKey": "Ecd1SDDi4pqdJD6qYLxD3y7VZAEb4d9j6LJgt4d6xas"
      },
      "ms-1": {
        "url": "http://ms-4242.example.meilisearch.io",
        "searchApiKey": "hrVu-OMcjPGElK7692K7bwriBoGyHXTMvB5NmZkMKqQ"
      }
    },
    "self": "ms-0"
  }'

Repeat this process with every instance in your network, then add documents. Do not send the same documents to different instances.
Finally, make a /multi-search query with the new federationOptions.remote:

curl \
  -X PATCH 'MEILISEARCH_URL/multi-search/' \
  -H 'Content-Type: application/json'  \
  --data-binary '{
    "federation": {},
    "queries": [
        {
            "q": "Batman returns dark",
            "indexUid": "movies",
            "federationOptions": {
                "remote": "ms-0"
            }
        },
        {
            "q": "Batman returns dark",
            "indexUid": "movies",
            "federationOptions": {
                "remote": "ms-1"
            }
        }
    ]
}'

Find more information about this feature on the public usage page

Other improvements

  • Improve task auto-batching by exposing a way to limit the total size of a batch by @Kerollmops in #5223
  • Add Prometheus metrics to measure task queue latency by @takaebato in #5178
  • Speed up the request to list indexes by @irevoire in #5166
  • Add support for GITHUB_TOKEN authentication in installation script by @Sherlouk in #5216
  • Expose a new usedDatabaseSize field on the /stats route by @ManyTheFish in #5314
  • Expose embeddings info on the /stats route by @ManyTheFish in #5341

Fixes 🐞

  • Improve error message when an attribute is not filterable by @jameshiew in #5135
  • Make sure indexing embeddings is using the right number of threads by @Kerollmops in #5322
  • Dumpless upgrade will no longer corrupt the database in case of early stop by @irevoire in #5316
  • Fix export/import dump that contains batches data by @irevoire in #5310
  • Make sure indexing geo points works with PUT requests by @dureuill in #5332
  • Add back semantic search timeout from v1.11.3 by @dureuill in #5339

Misc

❤️ Thanks again to our external contributors:

v1.13.0-rc.3 🕊️

13 Feb 10:28
5e78036
Compare
Choose a tag to compare
v1.13.0-rc.3 🕊️ Pre-release
Pre-release

Warning

Since this is a release candidate (RC), we do NOT recommend using it in a production environment. Is something not working as expected? We welcome bug reports and feedback about new features.

New fields in the stats

Internal fixes

Full Changelog: v1.13.0-rc.2...v1.13.0-rc.3

v1.13.0-rc.2 🕊️

12 Feb 14:07
fa763ca
Compare
Choose a tag to compare
v1.13.0-rc.2 🕊️ Pre-release
Pre-release

Warning

Since this is a release candidate (RC), we do NOT recommend using it in a production environment. Is something not working as expected? We welcome bug reports and feedback about new features.

Fixes 🦋

Other ☁️

  • Expose a route to get the file content associated with a task by @Kerollmops in #5326

Meilitool

Full Changelog: v1.13.0-rc.1...v1.13.0-rc.2

v1.13.0-rc.1 🕊️

05 Feb 17:12
78867b6
Compare
Choose a tag to compare
v1.13.0-rc.1 🕊️ Pre-release
Pre-release

Warning

Since this is a release candidate (RC), we do NOT recommend using it in a production environment. Is something not working as expected? We welcome bug reports and feedback about new features.

Improvements 📈

  • Remote federated search by @dureuill in #5299
  • Expose the usedDatabaseSize corresponding to the size used to store the "real" data in the database and not the disk size used by LMDB used database size in the /stats route by @ManyTheFish in #5314

Fixes 🦋

  • When a batch is deleted it no longer keeps some internal data in the DB @Kerollmops in #5272
  • Fix a rare stack overflow when using remote embedders by @Kerollmops with the help of @dureuill #5294 (from v1.12.8)
  • Fix internal error when passing documentTemplateMaxBytes to a source that doesn't support it by @dureuill in #5306 reported by @ellnix

Other ☁️

Benchmarks

Meilitool

Full Changelog: v1.13.0-rc.0...v1.13.0-rc.1

v1.12.8 🦗

30 Jan 13:05
876084d
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.12.7...v1.12.8

v1.13.0-rc.0 🕊️

27 Jan 10:44
df9d10a
Compare
Choose a tag to compare
v1.13.0-rc.0 🕊️ Pre-release
Pre-release

v1.13.0 release changelogs

Warning

Since this is a release candidate (RC), we do NOT recommend using it in a production environment. Is something not working as expected? We welcome bug reports and feedback about new features.

Meilisearch v1.13 introduces several significant improvements, including stabilizing the Vector Store feature for seamless hybrid search integration! 🎉 This version also simplifies the Meilisearch upgrade process: you don't need a dump for migrating anymore!

New features and updates 🔥

Stabilize Vector Store feature

After its initial release in v1.3.0, we have now fully stabilized the Vector Store feature. The experimental feature no longer requires manual activation, and the vectorStore field is no longer displayed or accepted by the /experimental-features route. This makes it even simpler to utilize our hybrid search capability, which delivers significantly better search relevance by combining traditional full text search with AI-powered semantic search.

Breaking Changes before Stabilization

  • Accepted Ollama URLs can only end with /api/embed and /api/embeddings.
  • Modified error codes:
    • invalid_embedder has been split into invalid_search_embedder and invalid_similar_embedder. These codes are returned when the embedder parameter of a search (resp. similar) request refers to a non-existing embedder configuration or is not a string.
    • invalid_hybrid_query has been renamed to invalid_search_hybrid_query. It is returned when the hybrid parameter is invalid: contains unknown keys or is not either null or an object.

Done by @dureuill in #5232 & #5234

Experimental Dumpless Upgrade: Ease upgrading to the next version without a dump

From now on you can upgrade any database in the v1.12 version or more to the latest version without using a dump.
That means it's an in-place, way faster upgrade process that consumes only the minimal amount of RAM or disk required.

To upgrade your v1.12 database to v1.13 runs:

./meilisearch --experimental-dumpless-upgrade

Read more about it here.

Done by @irevoire and @dureuill in #5264

Other improvements

Fixes 🐞

  • Improve the error message when an attributes is not filterable by @jameshiew in #5135

Misc

❤️ Thanks again to our external contributors:

v1.12.7 🦗

23 Jan 14:20
e20b912
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.12.6...v1.12.7

v1.12.6 🦗

21 Jan 13:12
ad9d8e1
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.12.5...v1.12.6

v1.12.5 🦗

20 Jan 13:47
1c78447
Compare
Choose a tag to compare

Fixes 🪲

  • Dump export no longer fails when the task queue contains enqueued or processing tasks, by @dureuill and @ManyTheFish in #5246
  • Dumps containing enqueued tasks no longer fail to import, also in #5246
  • Dumps exported in v1.12 reset the batch_uid of all tasks, as batches are not persisted in dumps in v1.12. See #5247 for details.

Full Changelog: v1.12.4...v1.12.5

v1.12.4 🦗

16 Jan 14:59
a5c44b4
Compare
Choose a tag to compare

Fixes 🪲

  • The indexing process no longer starts an infinite loop in some circumstances by @dureuill in #5242
  • The indexing process no longer fails task when attempting to delete keys that are not in the DB, also in #5242

Full Changelog: v1.12.3...v1.12.4