Update getmeili/meilisearch Docker tag to v1.35.0 #41

Open
Renovate wants to merge 1 commit from renovate/getmeili-meilisearch-1.x into main
Collaborator

This PR contains the following updates:

Package Update Change
getmeili/meilisearch minor v1.31.0v1.35.0

Release Notes

meilisearch/meilisearch (getmeili/meilisearch)

v1.35.0

Compare Source

Meilisearch v1.35.0 contains improvements to the observability of the search performance, a breaking change to the recently introduced POST /indexes/<index_uid>/fields route, and other bugfixes and improvements.

🌈 Improvements
Observe the search performance

The search routes accept a new field named showPerformanceDetails. When set to ù true`, the search response contains a performance trace, allowing the user to better
understand what takes time during a search query.

impacted routes:

  • POST /indexes/<index_uid>/search
  • GET /indexes/<index_uid>/search
  • POST /multi-search
  • POST /indexes/<index_uid>/similar
  • GET /indexes/<index_uid>/similar

routes: POST /indexes/<index_uid>/search and GET /indexes/<index_uid>/search

Request

new request parameters:

  • showPerformanceDetails: true/false (boolean)
example
{
	"q": "glass",
	"showPerformanceDetails": true
}
Response

new response field:

  • performanceDetails: {"<span>": "<human_duration>", .. } (map)
example
{
	"hits": [
		// hits ..
	],
	"query": "glass",
	"processingTimeMs": 5,
	"limit": 20,
	"offset": 0,
	"estimatedTotalHits": 1,
	"requestUid": "<uuid>",
	"performanceDetails": {
		"wait for permit": "295.29µs",
		"search > tokenize": "436.67µs",
		"search > resolve universe": "649.00µs",
		"search > keyword search": "515.71µs",
		"search > format": "288.54µs",
		"search": "3.56ms"
	}
}

route: POST /multi-search

Request

new request parameters:

  • queries.showPerformanceDetails: true/false (boolean)
example
"queries": [
	{
		"indexUid": "<index_uid>",
		"q": "glass",
		"showPerformanceDetails": true
	}
]
Response

new response field:

  • results.performanceDetails: {"<span>": "<human_duration>", .. } (map)
example
{
	"results": [
		{
			"indexUid": "<index_uid>",
			"hits": [
				// hits ..
			],
			"query": "glass",
			"processingTimeMs": 5,
			"limit": 20,
			"offset": 0,
			"estimatedTotalHits": 1,
			"requestUid": "<uuid>",
			"performanceDetails": {
				"wait for permit": "295.29µs",
				"search > tokenize": "436.67µs",
				"search > resolve universe": "649.00µs",
				"search > keyword search": "515.71µs",
				"search > format": "288.54µs",
				"search": "3.56ms"
			}
		}
	]
}

route: POST /multi-search

Request

new request parameters:

  • federation.showPerformanceDetails: true/false (boolean)
example
{
	"federation": { "showPerformanceDetails": true },
	"queries": [
		{
			"indexUid": "<index_uid>",
			"q": "glass"
		}
	]
}
Response

new response field:

  • performanceDetails: {"<span>": "<human_duration>", .. } (map)
example
{
	"hits": [
		// hits ..
	],
	"query": "glass",
	"processingTimeMs": 5,
	"limit": 20,
	"offset": 0,
	"estimatedTotalHits": 1,
	"requestUid": "<uuid>",
	"performanceDetails": {
		"wait for permit": "213.83µs",
		"search > tokenize": "171.67µs",
		"search > resolve universe": "257.63µs",
		"search > keyword search": "577.71µs",
		"search > format": "114.96µs",
		"search > federation > wait for remote results": "62.71µs",
		"search > federation > merge results": "120.04µs",
		"search > federation > merge facets": "53.42µs",
		"search > federation": "237.04µs",
		"search": "289.08ms"
	}
}
Similar

routes: POST /indexes/<index_uid>/similar and GET /indexes/<index_uid>/similar

Request

new request parameters:

  • showPerformanceDetails: true/false (boolean)
example
{
	"id": 143,
	"embedder": "manual",
	"showPerformanceDetails": true
}
Response

new response field:

  • performanceDetails: {"<span>": "<human_duration>", .. } (map)
example
{
	"hits": [
		// hits ..
	],
	"id": "143",
	"processingTimeMs": "[duration]",
	"limit": 20,
	"offset": 0,
	"estimatedTotalHits": 4,
	"performanceDetails": {
		"search > format": "244.92µs",
		"search": "1.25ms"
	}
}

By @​ManyTheFish in #​6132

Stabilize multithreaded post-processing of facets and prefixes

Multithreaded post-processing of facets and prefixes speeds-up indexing on multi-core machines.

Before v1.35.0, it could be disabled with an experimental feature.

Meilisearch v1.35.0 removes that experimental feature, resulting in the multithreaded post-processing being always enabled.

Cloud users upgrading to v1.35.0 will benefit from the speed-up.

By @​ManyTheFish in #​6130

🦋 Fixes
Breaking change: return pagination fields in POST /indexes/<index_uid>/fields route

[!WARNING]
Breaking change: The POST /indexes/<index_uid>/fields route now returns an object containing the results, offset, limit, and total fields instead of returning an array of results. This change allows to know how many fields match a given filter

Example: before/after

Before:

[
  // fields ..
]

After:

{
  "results": [
    // [fields .. ]
  ],
  "offset": 0,
  "limit": 20,
  "total": 0
}

By @​ManyTheFish in #​6126

POST /indexes/<index_uid>/fields: Fix pattern filtering when a parent field was matching a child pattern: title was matching the pattern title.to*.
Example: before/after

For the following request:

{
  "filter": {
    "attributePatterns": [
      "title.en"
    ]
  }
}

Before Response, title field is returned:

{
  "results": [
    {
      "name": "title",
      //metadata...
    },
    
  ],
  "offset": 0,
  "limit": 20,
  "total": 1
}

After Response, nothing returned:

{
  "results": [],
  "offset": 0,
  "limit": 20,
  "total": 0
}

By @​ManyTheFish, also in #​6126

🐛 Other fixes
🔩 Miscellaneous
New Contributors

Full Changelog: https://github.com/meilisearch/meilisearch/compare/v1.34.3...v1.35.0

v1.34.3

Compare Source

🐛 Bug Fixes

Full Changelog: https://github.com/meilisearch/meilisearch/compare/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: https://github.com/meilisearch/meilisearch/compare/v1.34.1...v1.34.2

v1.34.1

Compare Source

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.

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: https://github.com/meilisearch/meilisearch/compare/v1.33.1...v1.34.0

v1.33.1: 🐞

Compare Source

What's Changed

Full Changelog: https://github.com/meilisearch/meilisearch/compare/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: https://github.com/meilisearch/meilisearch/compare/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: https://github.com/meilisearch/meilisearch/compare/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

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: https://github.com/meilisearch/meilisearch/compare/v1.31.0...v1.32.0


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 this update again.


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

This PR has been generated by Renovate Bot.

This PR contains the following updates: | Package | Update | Change | |---|---|---| | [getmeili/meilisearch](https://github.com/meilisearch/meilisearch) | minor | `v1.31.0` → `v1.35.0` | --- ### Release Notes <details> <summary>meilisearch/meilisearch (getmeili/meilisearch)</summary> ### [`v1.35.0`](https://github.com/meilisearch/meilisearch/releases/tag/v1.35.0) [Compare Source](https://github.com/meilisearch/meilisearch/compare/v1.34.3...v1.35.0) Meilisearch v1.35.0 contains improvements to the observability of the search performance, a breaking change to the recently introduced `POST /indexes/<index_uid>/fields` route, and other bugfixes and improvements. ##### 🌈 Improvements ##### Observe the search performance The search routes accept a new field named `showPerformanceDetails`. When set to ù true\`, the search response contains a performance trace, allowing the user to better understand what takes time during a search query. **impacted routes:** - `POST /indexes/<index_uid>/search` - `GET /indexes/<index_uid>/search` - `POST /multi-search` - `POST /indexes/<index_uid>/similar` - `GET /indexes/<index_uid>/similar` ##### Search routes: `POST /indexes/<index_uid>/search` and `GET /indexes/<index_uid>/search` ##### Request new request parameters: - `showPerformanceDetails`: `true`/`false` (boolean) <details> <summary>example</summary> ```jsonc { "q": "glass", "showPerformanceDetails": true } ``` </details> ##### Response new response field: - `performanceDetails`: `{"<span>": "<human_duration>", .. }` (map) <details> <summary>example</summary> ```jsonc { "hits": [ // hits .. ], "query": "glass", "processingTimeMs": 5, "limit": 20, "offset": 0, "estimatedTotalHits": 1, "requestUid": "<uuid>", "performanceDetails": { "wait for permit": "295.29µs", "search > tokenize": "436.67µs", "search > resolve universe": "649.00µs", "search > keyword search": "515.71µs", "search > format": "288.54µs", "search": "3.56ms" } } ``` </details> ##### Multi-search route: `POST /multi-search` ##### Request new request parameters: - `queries.showPerformanceDetails`: `true`/`false` (boolean) <details> <summary>example</summary> ```jsonc "queries": [ { "indexUid": "<index_uid>", "q": "glass", "showPerformanceDetails": true } ] ``` </details> ##### Response new response field: - `results.performanceDetails`: `{"<span>": "<human_duration>", .. }` (map) <details> <summary>example</summary> ```jsonc { "results": [ { "indexUid": "<index_uid>", "hits": [ // hits .. ], "query": "glass", "processingTimeMs": 5, "limit": 20, "offset": 0, "estimatedTotalHits": 1, "requestUid": "<uuid>", "performanceDetails": { "wait for permit": "295.29µs", "search > tokenize": "436.67µs", "search > resolve universe": "649.00µs", "search > keyword search": "515.71µs", "search > format": "288.54µs", "search": "3.56ms" } } ] } ``` </details> ##### Federated Search route: `POST /multi-search` ##### Request new request parameters: - `federation.showPerformanceDetails`: `true`/`false` (boolean) <details> <summary>example</summary> ```jsonc { "federation": { "showPerformanceDetails": true }, "queries": [ { "indexUid": "<index_uid>", "q": "glass" } ] } ``` </details> ##### Response new response field: - `performanceDetails`: `{"<span>": "<human_duration>", .. }` (map) <details> <summary>example</summary> ```jsonc { "hits": [ // hits .. ], "query": "glass", "processingTimeMs": 5, "limit": 20, "offset": 0, "estimatedTotalHits": 1, "requestUid": "<uuid>", "performanceDetails": { "wait for permit": "213.83µs", "search > tokenize": "171.67µs", "search > resolve universe": "257.63µs", "search > keyword search": "577.71µs", "search > format": "114.96µs", "search > federation > wait for remote results": "62.71µs", "search > federation > merge results": "120.04µs", "search > federation > merge facets": "53.42µs", "search > federation": "237.04µs", "search": "289.08ms" } } ``` </details> ##### Similar routes: `POST /indexes/<index_uid>/similar` and `GET /indexes/<index_uid>/similar` ##### Request new request parameters: - `showPerformanceDetails`: `true`/`false` (boolean) <details> <summary>example</summary> ```jsonc { "id": 143, "embedder": "manual", "showPerformanceDetails": true } ``` </details> ##### Response new response field: - `performanceDetails`: `{"<span>": "<human_duration>", .. }` (map) <details> <summary>example</summary> ```jsonc { "hits": [ // hits .. ], "id": "143", "processingTimeMs": "[duration]", "limit": 20, "offset": 0, "estimatedTotalHits": 4, "performanceDetails": { "search > format": "244.92µs", "search": "1.25ms" } } ``` </details> By [@&#8203;ManyTheFish](https://github.com/ManyTheFish) in [#&#8203;6132](https://github.com/meilisearch/meilisearch/pull/6132) ##### Stabilize multithreaded post-processing of facets and prefixes Multithreaded post-processing of facets and prefixes speeds-up indexing on multi-core machines. Before v1.35.0, it could be disabled with an [experimental feature](https://github.com/orgs/meilisearch/discussions/862). Meilisearch v1.35.0 removes that experimental feature, resulting in the multithreaded post-processing being always enabled. Cloud users upgrading to v1.35.0 will benefit from the speed-up. By [@&#8203;ManyTheFish](https://github.com/ManyTheFish) in [#&#8203;6130](https://github.com/meilisearch/meilisearch/pull/6130) ##### 🦋 Fixes ##### Breaking change: return pagination fields in `POST /indexes/<index_uid>/fields` route > \[!WARNING] > **Breaking change**: The `POST /indexes/<index_uid>/fields` route now returns an object containing the `results`, `offset`, `limit`, and `total` fields instead of returning an array of results. This change allows to know how many fields match a given filter <details> <summary>Example: before/after</summary> Before: ```jsonc [ // fields .. ] ``` After: ```jsonc { "results": [ // [fields .. ] ], "offset": 0, "limit": 20, "total": 0 } ``` </details> By [@&#8203;ManyTheFish](https://github.com/ManyTheFish) in [#&#8203;6126](https://github.com/meilisearch/meilisearch/pull/6126) ##### `POST /indexes/<index_uid>/fields`: Fix pattern filtering when a parent field was matching a child pattern: `title` was matching the pattern `title.to*`. <details> <summary>Example: before/after</summary> For the following request: ```jsonc { "filter": { "attributePatterns": [ "title.en" ] } } ``` Before Response, `title` field is returned: ```jsonc { "results": [ { "name": "title", //metadata... }, ], "offset": 0, "limit": 20, "total": 1 } ``` After Response, nothing returned: ```jsonc { "results": [], "offset": 0, "limit": 20, "total": 0 } ``` </details> By [@&#8203;ManyTheFish](https://github.com/ManyTheFish), also in [#&#8203;6126](https://github.com/meilisearch/meilisearch/pull/6126) ##### 🐛 Other fixes - Bump mini-dashboard version to fix display of image in local UI interface by [@&#8203;Strift](https://github.com/Strift) in [#&#8203;6129](https://github.com/meilisearch/meilisearch/pull/6129) - Fix mTLS compatibility with Go by [@&#8203;curquiza](https://github.com/curquiza) in [#&#8203;6133](https://github.com/meilisearch/meilisearch/pull/6133) ##### 🔩 Miscellaneous - Add AI usage disclosure guidelines to CONTRIBUTING.md by [@&#8203;meili-bot](https://github.com/meili-bot) in [#&#8203;6114](https://github.com/meilisearch/meilisearch/pull/6114) - Expose SettingsDelta and related types for external crate usage by [@&#8203;MkDev11](https://github.com/MkDev11) in [#&#8203;6119](https://github.com/meilisearch/meilisearch/pull/6119) ##### New Contributors - [@&#8203;MkDev11](https://github.com/MkDev11) made their first contribution in [#&#8203;6119](https://github.com/meilisearch/meilisearch/pull/6119) ❤️ **Full Changelog**: <https://github.com/meilisearch/meilisearch/compare/v1.34.3...v1.35.0> ### [`v1.34.3`](https://github.com/meilisearch/meilisearch/releases/tag/v1.34.3) [Compare Source](https://github.com/meilisearch/meilisearch/compare/v1.34.2...v1.34.3) ##### 🐛 Bug Fixes - Increase the auth store database size to 2 GiB so that we can index more keys by [@&#8203;Kerollmops](https://github.com/Kerollmops) in [#&#8203;6134](https://github.com/meilisearch/meilisearch/pull/6134) **Full Changelog**: <https://github.com/meilisearch/meilisearch/compare/v1.34.2...v1.34.3> ### [`v1.34.2`](https://github.com/meilisearch/meilisearch/releases/tag/v1.34.2) [Compare Source](https://github.com/meilisearch/meilisearch/compare/v1.34.1...v1.34.2) 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**: <https://github.com/meilisearch/meilisearch/compare/v1.34.1...v1.34.2> ### [`v1.34.1`](https://github.com/meilisearch/meilisearch/compare/v1.34.0...v1.34.1) [Compare Source](https://github.com/meilisearch/meilisearch/compare/v1.34.0...v1.34.1) ### [`v1.34.0`](https://github.com/meilisearch/meilisearch/releases/tag/v1.34.0) [Compare Source](https://github.com/meilisearch/meilisearch/compare/v1.33.1...v1.34.0) ##### 🌈 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: <details> <summary>Search request</summary> ```jsonc // POST /indexes/movies/search { "q": "Batman dark knight returns 1", "filter": "genres IN [Action, Adventure]", "facets": ["genres"], "useNetwork": true, // ✨ NEW "limit": 5 } ``` </details> Is executed by Meilisearch as if it was the following, assuming a network of 3 Meilisearch instances with names `"0", "1" and "2"`: <details> <summary>Equivalent multi-search request</summary> ```jsonc // 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]" } ] } ``` </details> Resulting in: <details> <summary>Search Response</summary> ```jsonc { "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": {} } ``` </details> `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: <details> <summary>Multi-search request</summary> ```jsonc { "federation": { "limit": 5 }, "queries": [ { "q": "Batman returns", "indexUid": "mieli", "useNetwork": true }, { "q": "Superman returns", "indexUid": "mieli", "useNetwork": true } ] } ``` </details> <details> <summary>Multi-search response</summary> ```json { "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": {} } ``` </details> ##### 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 [@&#8203;dureuill](https://github.com/dureuill) in [#&#8203;6101](https://github.com/meilisearch/meilisearch/pull/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](https://www.meilisearch.com/docs/reference/api/search#page) in the federated search By [@&#8203;dureuill](https://github.com/dureuill) in [#&#8203;6101](https://github.com/meilisearch/meilisearch/pull/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 [@&#8203;VedantMadane](https://github.com/VedantMadane) in [#&#8203;6109](https://github.com/meilisearch/meilisearch/pull/6109) ##### 🔒 Security Solves a low-severity timing attack vulnerability on key comparison by using constant-time comparison By [@&#8203;curquiza](https://github.com/curquiza) in [#&#8203;6077](https://github.com/meilisearch/meilisearch/pull/6077) ##### 🔩 Maintenance ##### Remove some unwanted dependencies - Remove openssl from deps by [@&#8203;dureuill](https://github.com/dureuill) in [#&#8203;6117](https://github.com/meilisearch/meilisearch/pull/6117) - Fix geo-types version to avoid multiple rstar deps by [@&#8203;dureuill](https://github.com/dureuill) in [#&#8203;6118](https://github.com/meilisearch/meilisearch/pull/6118) ##### New Contributors :heart: Thanks again [@&#8203;VedantMadane](https://github.com/VedantMadane) for the contribution to this release! **Full Changelog**: <https://github.com/meilisearch/meilisearch/compare/v1.33.1...v1.34.0> ### [`v1.33.1`](https://github.com/meilisearch/meilisearch/releases/tag/v1.33.1): 🐞 [Compare Source](https://github.com/meilisearch/meilisearch/compare/v1.33.0...v1.33.1) ##### What's Changed - Fix relevancy issue with cutoff and multiple rules + bump hannoy by [@&#8203;Kerollmops](https://github.com/Kerollmops) in [#&#8203;6113](https://github.com/meilisearch/meilisearch/pull/6113) **Full Changelog**: <https://github.com/meilisearch/meilisearch/compare/v1.33.0...v1.33.1> ### [`v1.33.0`](https://github.com/meilisearch/meilisearch/releases/tag/v1.33.0): 🐞 [Compare Source](https://github.com/meilisearch/meilisearch/compare/v1.32.2...v1.33.0) ##### ✨ Enhancement - **Add `/fields` route to get all the fields of an index** by [@&#8203;YoEight](https://github.com/YoEight) in [#&#8203;6082](https://github.com/meilisearch/meilisearch/pull/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 [@&#8203;Kerollmops](https://github.com/Kerollmops) in [#&#8203;6100](https://github.com/meilisearch/meilisearch/pull/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 [@&#8203;Kerollmops](https://github.com/Kerollmops) in [#&#8203;6103](https://github.com/meilisearch/meilisearch/pull/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 - **Meilisearch can now rescale when the index reaches 2 TB** by [@&#8203;Vipul-045](https://github.com/Vipul-045) in [#&#8203;6095](https://github.com/meilisearch/meilisearch/pull/6095) ##### 🔒 Security - **Upgrade mini-dashboard to benefit security vulnerability fixes** by [@&#8203;curquiza](https://github.com/curquiza) in [#&#8203;6091](https://github.com/meilisearch/meilisearch/pull/6091) ##### 🔩 Miscellaneous - Fix tests by [@&#8203;dureuill](https://github.com/dureuill) in [#&#8203;6090](https://github.com/meilisearch/meilisearch/pull/6090) - Add verbose OpenAPI schema descriptions for documentation by [@&#8203;qdequele](https://github.com/qdequele) in [#&#8203;6071](https://github.com/meilisearch/meilisearch/pull/6071) - Add code samples to the generated openAPI file by [@&#8203;curquiza](https://github.com/curquiza) in [#&#8203;6028](https://github.com/meilisearch/meilisearch/pull/6028) Thank you [@&#8203;Vipul-045](https://github.com/Vipul-045) for your first contribution ❤️ ### [`v1.32.2`](https://github.com/meilisearch/meilisearch/releases/tag/v1.32.2): 🐟 [Compare Source](https://github.com/meilisearch/meilisearch/compare/v1.32.1...v1.32.2) ##### 🐛 Bug fixes - Do not panic when doing a dumpless upgrade on empty indexes with configured embeddings by [@&#8203;Kerollmops](https://github.com/Kerollmops) in [#&#8203;6102](https://github.com/meilisearch/meilisearch/pull/6102) **Full Changelog**: <https://github.com/meilisearch/meilisearch/compare/v1.32.1...v1.32.2> ### [`v1.32.1`](https://github.com/meilisearch/meilisearch/releases/tag/v1.32.1): 🐟 [Compare Source](https://github.com/meilisearch/meilisearch/compare/v1.32.0...v1.32.1) ##### 🌈 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 [@&#8203;ManyTheFish](https://github.com/ManyTheFish) in [#&#8203;6096](https://github.com/meilisearch/meilisearch/pull/6096) **Full Changelog**: <https://github.com/meilisearch/meilisearch/compare/v1.32.0...v1.32.1> ### [`v1.32.0`](https://github.com/meilisearch/meilisearch/releases/tag/v1.32.0): 🐟 [Compare Source](https://github.com/meilisearch/meilisearch/compare/v1.31.0...v1.32.0) ##### 🌈 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 [@&#8203;ManyTheFish](https://github.com/ManyTheFish) in [#&#8203;6072](https://github.com/meilisearch/meilisearch/pull/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 [@&#8203;Kerollmops](https://github.com/Kerollmops) in [#&#8203;6080](https://github.com/meilisearch/meilisearch/pull/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 [@&#8203;dureuill](https://github.com/dureuill) in [#&#8203;6081](https://github.com/meilisearch/meilisearch/pull/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 [@&#8203;ManyTheFish](https://github.com/ManyTheFish) in [#&#8203;6076](https://github.com/meilisearch/meilisearch/pull/6076) ##### Rebuild the graph links when dumpless-upgrading Bumps [hannoy to v0.1.3-nested-rtxns](https://github.com/nnethercott/hannoy/releases/tag/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 [@&#8203;Kerollmops](https://github.com/Kerollmops) in [#&#8203;6055](https://github.com/meilisearch/meilisearch/pull/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 [@&#8203;Strift](https://github.com/Strift) in [#&#8203;6075](https://github.com/meilisearch/meilisearch/pull/6075) ##### Adapt JS tests in SDK tests CI Updated the SDK tests CI workflow for the JavaScript SDKs > by [@&#8203;curquiza](https://github.com/curquiza) in [#&#8203;6050](https://github.com/meilisearch/meilisearch/pull/6050) ##### Bump lru from 0.16.2 to 0.16.3 Fix Stacked Borrows violation in `IterMut`. > by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;6087](https://github.com/meilisearch/meilisearch/pull/6087) **Full Changelog**: <https://github.com/meilisearch/meilisearch/compare/v1.31.0...v1.32.0> </details> --- ### 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 this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi43NS4wIiwidXBkYXRlZEluVmVyIjoiNDIuOTUuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
Update getmeili/meilisearch Docker tag to v1.32.0
Some checks failed
Validate Docker Compose Files / validate-compose (pull_request) Failing after 1m57s
931a9d2739
Renovate force-pushed renovate/getmeili-meilisearch-1.x from 931a9d2739
Some checks failed
Validate Docker Compose Files / validate-compose (pull_request) Failing after 1m57s
to 4c5de433b8
Some checks failed
Validate Docker Compose Files / validate-compose (pull_request) Failing after 25s
2026-01-13 17:13:09 +01:00
Compare
Renovate force-pushed renovate/getmeili-meilisearch-1.x from 4c5de433b8
Some checks failed
Validate Docker Compose Files / validate-compose (pull_request) Failing after 25s
to 86070ed9db
Some checks failed
Validate Docker Compose Files / validate-compose (pull_request) Failing after 19s
2026-01-14 13:10:24 +01:00
Compare
Renovate changed title from Update getmeili/meilisearch Docker tag to v1.32.0 to Update getmeili/meilisearch Docker tag to v1.32.1 2026-01-14 13:10:48 +01:00
Renovate force-pushed renovate/getmeili-meilisearch-1.x from 86070ed9db
Some checks failed
Validate Docker Compose Files / validate-compose (pull_request) Failing after 19s
to 0842244ab4
Some checks failed
Validate Docker Compose Files / validate-compose (pull_request) Failing after 52s
2026-01-15 12:35:55 +01:00
Compare
Renovate changed title from Update getmeili/meilisearch Docker tag to v1.32.1 to Update getmeili/meilisearch Docker tag to v1.32.2 2026-01-15 12:36:26 +01:00
Renovate force-pushed renovate/getmeili-meilisearch-1.x from 0842244ab4
Some checks failed
Validate Docker Compose Files / validate-compose (pull_request) Failing after 52s
to e9889c73de
Some checks failed
Validate Docker Compose Files / validate-compose (pull_request) Failing after 21s
2026-01-19 23:27:34 +01:00
Compare
Renovate changed title from Update getmeili/meilisearch Docker tag to v1.32.2 to Update getmeili/meilisearch Docker tag to v1.33.0 2026-01-19 23:27:44 +01:00
Renovate force-pushed renovate/getmeili-meilisearch-1.x from e9889c73de
Some checks failed
Validate Docker Compose Files / validate-compose (pull_request) Failing after 21s
to 2a15f5e8ef
Some checks failed
Validate Docker Compose Files / validate-compose (pull_request) Failing after 18s
2026-01-20 15:53:47 +01:00
Compare
Renovate changed title from Update getmeili/meilisearch Docker tag to v1.33.0 to Update getmeili/meilisearch Docker tag to v1.33.1 2026-01-20 15:53:49 +01:00
Renovate force-pushed renovate/getmeili-meilisearch-1.x from 2a15f5e8ef
Some checks failed
Validate Docker Compose Files / validate-compose (pull_request) Failing after 18s
to ca662c2ea2
Some checks failed
Validate Docker Compose Files / validate-compose (pull_request) Failing after 19s
2026-01-20 21:27:54 +01:00
Compare
Renovate force-pushed renovate/getmeili-meilisearch-1.x from ca662c2ea2
Some checks failed
Validate Docker Compose Files / validate-compose (pull_request) Failing after 19s
to 873dc68483
Some checks failed
Validate Docker Compose Files / validate-compose (pull_request) Failing after 14s
2026-01-21 16:16:25 +01:00
Compare
Renovate force-pushed renovate/getmeili-meilisearch-1.x from 873dc68483
Some checks failed
Validate Docker Compose Files / validate-compose (pull_request) Failing after 14s
to 4b48be2434
Some checks failed
Validate Docker Compose Files / validate-compose (pull_request) Failing after 22s
2026-01-26 11:11:53 +01:00
Compare
Renovate changed title from Update getmeili/meilisearch Docker tag to v1.33.1 to Update getmeili/meilisearch Docker tag to v1.34.0 2026-01-26 11:11:56 +01:00
Renovate force-pushed renovate/getmeili-meilisearch-1.x from 4b48be2434
Some checks failed
Validate Docker Compose Files / validate-compose (pull_request) Failing after 22s
to 25329509f2
Some checks failed
Validate Docker Compose Files / validate-compose (pull_request) Failing after 18s
2026-01-27 11:21:47 +01:00
Compare
Renovate changed title from Update getmeili/meilisearch Docker tag to v1.34.0 to Update getmeili/meilisearch Docker tag to v1.34.1 2026-01-27 11:21:50 +01:00
Renovate changed title from Update getmeili/meilisearch Docker tag to v1.34.1 to Update getmeili/meilisearch Docker tag to v1.34.2 2026-01-28 10:09:46 +01:00
Renovate force-pushed renovate/getmeili-meilisearch-1.x from 25329509f2
Some checks failed
Validate Docker Compose Files / validate-compose (pull_request) Failing after 18s
to ab1da2ad08
Some checks failed
Validate Docker Compose Files / validate-compose (pull_request) Failing after 13s
2026-01-28 10:09:48 +01:00
Compare
Renovate force-pushed renovate/getmeili-meilisearch-1.x from ab1da2ad08
Some checks failed
Validate Docker Compose Files / validate-compose (pull_request) Failing after 13s
to 8de8e9e5cf
Some checks failed
Validate Docker Compose Files / validate-compose (pull_request) Failing after 19s
2026-01-28 19:23:36 +01:00
Compare
Renovate changed title from Update getmeili/meilisearch Docker tag to v1.34.2 to Update getmeili/meilisearch Docker tag to v1.34.3 2026-01-28 19:23:40 +01:00
Renovate force-pushed renovate/getmeili-meilisearch-1.x from 8de8e9e5cf
Some checks failed
Validate Docker Compose Files / validate-compose (pull_request) Failing after 19s
to 8c7ccf0d37
Some checks failed
Validate Docker Compose Files / validate-compose (pull_request) Failing after 20s
2026-02-02 11:33:04 +01:00
Compare
Renovate changed title from Update getmeili/meilisearch Docker tag to v1.34.3 to Update getmeili/meilisearch Docker tag to v1.35.0 2026-02-02 11:33:04 +01:00
Some checks failed
Validate Docker Compose Files / validate-compose (pull_request) Failing after 20s
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/getmeili-meilisearch-1.x:renovate/getmeili-meilisearch-1.x
git switch renovate/getmeili-meilisearch-1.x

Merge

Merge the changes and update on Forgejo.
git switch main
git merge --no-ff renovate/getmeili-meilisearch-1.x
git switch renovate/getmeili-meilisearch-1.x
git rebase main
git switch main
git merge --ff-only renovate/getmeili-meilisearch-1.x
git switch renovate/getmeili-meilisearch-1.x
git rebase main
git switch main
git merge --no-ff renovate/getmeili-meilisearch-1.x
git switch main
git merge --squash renovate/getmeili-meilisearch-1.x
git switch main
git merge --ff-only renovate/getmeili-meilisearch-1.x
git switch main
git merge renovate/getmeili-meilisearch-1.x
git push origin main
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Aroy/Paws!41
No description provided.