This repository was archived by the owner on Aug 5, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Add release changelogs for v0.28.0 #13
Merged
Merged
Changes from 71 commits
Commits
Show all changes
84 commits
Select commit
Hold shift + click to select a range
babcaae
Add release changelogs for v0.28.0
curquiza 7ccca36
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 6aa618b
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 016db99
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 6af6f41
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 2deb5a9
Update following reviews
curquiza 989ecef
Update meilisearch-release-changelogs/v0.28.0.md
curquiza e4072c4
Update meilisearch-release-changelogs/v0.28.0.md
curquiza a6f0e45
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 2526a25
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 92c1da2
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 5b20272
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 0028e1e
Update meilisearch-release-changelogs/v0.28.0.md
curquiza f8bb9cb
Update meilisearch-release-changelogs/v0.28.0.md
curquiza f01fdd7
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 0a9638f
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 81f0ae2
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 024dc2b
Update meilisearch-release-changelogs/v0.28.0.md
curquiza cbc96bd
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 4280117
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 4a94d4c
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 146539f
Update meilisearch-release-changelogs/v0.28.0.md
curquiza f21aef2
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 4eedd9b
Update meilisearch-release-changelogs/v0.28.0.md
curquiza eb4748b
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 817ed4b
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 525dfb4
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 31a7347
Update meilisearch-release-changelogs/v0.28.0.md
curquiza ffd973c
Update meilisearch-release-changelogs/v0.28.0.md
curquiza ec4e0f6
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 3768751
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 3b2ab91
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 84bd69e
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 09c8348
Update meilisearch-release-changelogs/v0.28.0.md
curquiza c97e0f5
Update meilisearch-release-changelogs/v0.28.0.md
curquiza d8de3e5
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 6376cce
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 5f75349
Update meilisearch-release-changelogs/v0.28.0.md
curquiza ea8be40
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 46dc526
Update meilisearch-release-changelogs/v0.28.0.md
curquiza c2ee09f
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 1a6682c
Update meilisearch-release-changelogs/v0.28.0.md
curquiza b80a9b4
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 845ebc2
Update meilisearch-release-changelogs/v0.28.0.md
curquiza b27878c
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 133affa
Update meilisearch-release-changelogs/v0.28.0.md
curquiza cb705d2
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 8611a37
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 68000f3
Update meilisearch-release-changelogs/v0.28.0.md
curquiza e93477e
Update meilisearch-release-changelogs/v0.28.0.md
curquiza fcd4582
Update meilisearch-release-changelogs/v0.28.0.md
curquiza ff38be0
Update meilisearch-release-changelogs/v0.28.0.md
curquiza d52d72c
Update meilisearch-release-changelogs/v0.28.0.md
curquiza a0ffff9
Update meilisearch-release-changelogs/v0.28.0.md
curquiza c58c1b9
Update meilisearch-release-changelogs/v0.28.0.md
curquiza fe5b1ad
Update meilisearch-release-changelogs/v0.28.0.md
curquiza c1aec41
Update meilisearch-release-changelogs/v0.28.0.md
curquiza c14ca93
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 1bd15e3
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 2b21796
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 236689f
Remove extra spaces
curquiza 54dfede
Add new sections about new limits
curquiza 7373300
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 80b549a
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 9eef097
Update meilisearch-release-changelogs/v0.28.0.md
curquiza d70b72b
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 5eef4c8
Update meilisearch-release-changelogs/v0.28.0.md
curquiza c8b93cd
Update meilisearch-release-changelogs/v0.28.0.md
curquiza e2def26
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 0360950
Add PR about docker
curquiza ecc7f95
Add pierre contribution
curquiza 2874d5d
Update meilisearch-release-changelogs/v0.28.0.md
curquiza e9c4753
Add the fix
curquiza 9304d4e
Add contributor PR in the release changelogs
curquiza 0935980
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 2134269
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 6eaedf6
Fix examples
curquiza 2c46009
Add missing PR about docker CI improvement
curquiza 7747212
Add new fix
curquiza 4ac38d9
Update meilisearch-release-changelogs/v0.28.0.md
curquiza f5bfa93
Update meilisearch-release-changelogs/v0.28.0.md
curquiza 06175fa
Add mini-dashboard PR
curquiza 206d72e
Add bash command to create deterministic keys
curquiza 020652d
Add link for new pagination guide
curquiza File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
@@ -0,0 +1,217 @@ | ||||||
# v0.28.0 release changelogs | ||||||
|
||||||
The main goal of this new release is to stabilize the Meilisearch API 🚀 | ||||||
|
||||||
This release introduces a lot of breaking changes (especially regarding names), and we are sorry for this. The purpose is to guarantee what we care about the most—providing the best search engine experience—by stabilizing the Meilisearch API. There should not be any breaking changes to the API in the future. | ||||||
|
||||||
<!-- The following line should NOT be put in the official release changelogs --> | ||||||
⚠️ Since this is a release candidate (RC), the official documentation is not updated yet, but will be ready for the official v0.28.0 release. The work-in-progress documentation is available [here](). | ||||||
Comment on lines
+7
to
+8
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. So you can remove it directly from github before the release 🤓 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I will not remove it from this PR, so that I can copy/paste in my next release changelog |
||||||
|
||||||
# New features 🚀 | ||||||
curquiza marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
|
||||||
## Smart crop | ||||||
|
||||||
The smart crop is an improvement of the Meilisearch crop. | ||||||
|
||||||
The cropping algorithm tries to find the window(s) with the highest density of query terms within the `cropLength` limit. From these, it picks the window that contains the most query terms in order. | ||||||
|
||||||
Done by @ManyTheFish (#2408) | ||||||
|
||||||
## API key management: deterministic keys | ||||||
|
||||||
- It is now possible to create a deterministic `key` value by specifying a `uid` field at creation. `uid` is a `uuidv4`. If omitted, Meilisearch generates it. | ||||||
curquiza marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
- Adds a `name` field: specify a human-readable `name` to make API key retrieval more convenient. | ||||||
- Introduces new actions to manage API keys (`keys.get`, `keys.create`, `keys.update`, `keys.delete`). | ||||||
- It is no longer possible to update an API key's `actions`, `indexes`, or `expiresAt` after creation. | ||||||
|
||||||
Done by @ManyTheFish in #2438, #2451, #2475, and #2474) | ||||||
|
||||||
## Hebrew language support | ||||||
|
||||||
New language support: Hebrew, using the [Niqqud library](https://github.com/benny-n/niqqud). | ||||||
|
||||||
Done by the amazing @benny-n in meilisearch/charabia#101. | ||||||
|
||||||
## New tokenizer contribution experience: add your language to Meilisearch | ||||||
|
||||||
The contribution experience in the tokenizer has been significantly improved. | ||||||
|
||||||
If your language is missing in Meilisearch, please consider contributing to [the Meilisearch tokenizer](https://github.com/meilisearch/charabia) by following the CONTRIBUTING.md file and integrating your intended normalizer/segmenter. | ||||||
|
||||||
The whole core team is available to help you contribute. Feel free to ask for any clarifications you need! | ||||||
|
||||||
Done by @ManyTheFish, @loiclec @gmourier, and @curquiza. | ||||||
|
||||||
## Customizable limits | ||||||
|
||||||
### Limit of facet values | ||||||
|
||||||
When searching using the `facets` search parameter, Meilisearch will now return a maximum of 100 different facet values per faceted attribute. | ||||||
|
||||||
This default limit is customizable using the new `faceting` setting, accessible via the `/indexes/{uid}/settings/faceting` route. | ||||||
|
||||||
To increase this limit to 1000: | ||||||
|
||||||
```bash | ||||||
curl \ | ||||||
-X PATCH 'http://localhost:7700/indexes/books/settings/faceting' \ | ||||||
-H 'Content-Type: application/json' \ | ||||||
--data-binary '{ | ||||||
"maxValuesPerFacet": 1000 | ||||||
}' | ||||||
``` | ||||||
|
||||||
You can also get the value using the HTTP `GET` verb, or reset the value using the `DELETE` verb. | ||||||
|
||||||
Done by @Kerollmops in meilisearch/milli#550 and #2494 | ||||||
|
||||||
### Limit of documents returned by search | ||||||
|
||||||
When making a search request, Meilisearch returns a maximum of 1000 documents: the documents deemed most relevant to the query. | ||||||
|
||||||
This default limit is now customizable using the `pagination` setting, accessible via the `/indexes/{uid}/settings/pagination` route. | ||||||
|
||||||
To increase this limit to 20000: | ||||||
|
||||||
```bash | ||||||
curl \ | ||||||
-X PATCH 'http://localhost:7700/indexes/books/settings/pagination' \ | ||||||
-H 'Content-Type: application/json' \ | ||||||
--data-binary '{ | ||||||
"limitedTo": 2000 | ||||||
curquiza marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
}' | ||||||
``` | ||||||
|
||||||
You can also get the value using the HTTP `GET` verb, or reset the value using the `DELETE` verb. | ||||||
|
||||||
Done by @Kerollmops in meilisearch/milli#550 and #2494 | ||||||
|
||||||
# Breaking changes and improvement ⚠️ | ||||||
|
||||||
<!-- The following line should only be put in the official release changelogs, not for the RC --> | ||||||
For most of the following changes, if you use [one of our SDKs](https://docs.meilisearch.com/learn/what_is_meilisearch/sdks.html), these changes will be transparent for you by only updating to the latest version of the SDK. | ||||||
curquiza marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
|
||||||
## Changes in `/indexes/{uid}/search` endpoint | ||||||
|
||||||
- `nbHits` is renamed `estimatedNbHits`. Some users were confused by the old name and used it for their pagination, which we discourage. Please check out this [fresh new guide]() to learn how to paginate with Meilisearch without using `nbHits`. | ||||||
curquiza marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
- The `facetsDistribution` search parameter is renamed `facets` | ||||||
- The `facetsDistribution` field in the response body is renamed `facetDistribution` | ||||||
- The `matches` search parameter is renamed `showMatchesPosition` | ||||||
- The `_matchesInfo` field in the response body is renamed `_matchesPosition` | ||||||
- `exhaustiveNbHits` and `exhaustiveFacetsCount` are removed. Meilisearch does not return exhaustive hit or facet counts at this time. | ||||||
|
||||||
Done by @irevoire in #2406. | ||||||
|
||||||
## Changes in `/indexes` endpoints | ||||||
|
||||||
- When getting the index list (`GET /indexes`), the response is now paginated. That means: | ||||||
- You can use the `offset` and `limit` parameters to browse indexes. | ||||||
- The indexes are returned in the `results` field in the response body. | ||||||
- `limit`, `offset`, and `total` now appear in the response body. | ||||||
- The endpoint to update an index is now `PATCH /indexes/{indexUid}` instead of `PUT` | ||||||
- The already deprecated `name` field has now been removed entirely. | ||||||
|
||||||
Done by @irevoire and @Kerollmops in #2423, #2452, and #2454. | ||||||
|
||||||
## Changes in `indexes/{uid}/documents` endpoints | ||||||
|
||||||
- When getting the documents list (`GET /indexes/{uid}/documents`), pagination has been improved. That means: | ||||||
- You can still use the `offset` and `limit` parameters to browse documents. | ||||||
- The documents are returned in the `results` field in the response body. | ||||||
- `limit`, `offset`, and `total` now appear in the response body. | ||||||
- When getting documents via the `GET /indexes/{uid}/documents` route, the `attributesToRetrieve` parameter has been renamed `fields` | ||||||
- The `fields` parameter is also available for the `GET /indexes/{uid}/documents/{document_uid}` endpoint. | ||||||
- The [`displayedAttributes` setting](https://docs.meilisearch.com/reference/api/displayed_attributes.html) does not impact `GET indexes/{uid}/documents` anymore. | ||||||
|
||||||
Done by @irevoire in #2372, #2433, and #2454. | ||||||
|
||||||
## Changes in `/tasks` and `/indexes/{uid}/tasks` endpoints | ||||||
|
||||||
- You can now filter on the `GET /tasks` endpoint: | ||||||
- Filtering is possible on the `type`, `status`, and `indexUid` fields. | ||||||
- Use the `,` character to specify several values for a filter, e.g. `?status=enqueued,processing`. This is equivalent to an `OR` operation. | ||||||
- Use the `&` character to apply multiple filters, e.g. `?status=enqueued&type=indexCreation`. This is equivalent to an `AND` operation. | ||||||
- Add keyset pagination on the `GET /tasks` endpoint, allowing users to browse multiple sets of `task` items. | ||||||
- Use the `limit` and `from` query parameters to browse tasks. | ||||||
- `limit`, `from`, and `next` now appear in the response body. | ||||||
- `GET /indexes/:indexUid/tasks` has been removed. It can be replaced by `GET /tasks?indexUid=:indexUid` | ||||||
- `GET /indexes/:indexUid/tasks/:taskUid` has been removed. | ||||||
- `uid` has been renamed `taskUid` in the response body returned by every asynchronous task (e.g. index creation, document addition, etc...) | ||||||
- Some task properties have been renamed | ||||||
- `documentPartial`-> `documentAdditionOrUpdate` | ||||||
- `documentAddition`-> `documentAdditionOrUpdate` | ||||||
- `clearAll` -> `documentDeletion` | ||||||
|
||||||
Done by Kerollmops in #2399 and #2445. | ||||||
|
||||||
## Changes regarding dumps | ||||||
|
||||||
- Dump creation is now an asynchronous task. | ||||||
- Dump tasks are placed at the end of the task queue, but processed in priority. | ||||||
- In other words, a dump will run as soon as the current task is finished processing. | ||||||
- The dump's `uid` will reflect when it was enqueued in relation to the other tasks, not when it was processed. | ||||||
- `POST /dumps` now returns `202` like any other asynchronous operation (e.g. index creation, document addition... | ||||||
curquiza marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
- The `GET /dumps/:dump_uid/status` endpoint has been removed. It can be replaced by `GET /tasks?type=dumpCreation`. | ||||||
- The `dump_already_processing` error has been removed since dumps can now be enqueued. | ||||||
|
||||||
Done by @MarinPostma in #2410 | ||||||
|
||||||
## Changes in `/keys` endpoint | ||||||
|
||||||
- Tenant tokens: `apiKeyPrefix` has been renamed `apiKeyUid`. | ||||||
- It is no longer possible to update `actions`, `indexes`, or `expiresAt` after key creation. Only the `name` and `description` fields are updatable. | ||||||
- When getting the keys list (`GET /keys`), the response is now paginated. That means: | ||||||
- You can use the `offset` and `limit` parameters to browse keys. | ||||||
- `limit`, `offset`, and `total` now appear in the response body. | ||||||
- Due to changes to the `keys` resource, dumps are not fully compatible with API keys. As a result, keys imported from an old version of Meilisearch will have their `key` and `uid` fields regenerated. In other words, **you will need to update your keys**. Other key fields such as `actions` and `indexes` will not be affected. | ||||||
- The `dumps.get` action has been removed. | ||||||
|
||||||
Done by @ManyTheFish in #2438, #2451, #2475, and #2474) | ||||||
|
||||||
## Changes in `/indexes/{uid}/settings` endpoints | ||||||
|
||||||
The following changes only concern the HTTP verb associated with a given method. | ||||||
|
||||||
- The endpoint to update the global settings is now `PATCH /indexes/{indexUid}/settings` instead of `POST` | ||||||
- The endpoint to update the typo tolerance settings is now `PATCH /indexes/{indexUid}/settings/typo-tolerance` instead of `POST` | ||||||
- The endpoint to update the displayed attributes settings is now `PUT /indexes/{indexUid}/settings/displayed-attributes` instead of `POST` | ||||||
- The endpoint to update the distinct attribute settings is now `PUT /indexes/{indexUid}/settings/distinct-attribute` instead of `POST` | ||||||
- The endpoint to update the filterable attribute settings is now `PUT /indexes/{indexUid}/settings/filterable-attributes` instead of `POST` | ||||||
- The endpoint to update the ranking rules settings is now `PUT /indexes/{indexUid}/settings/ranking-rules` instead of `POST` | ||||||
- The endpoint to update the searchable attributes settings is now `PUT /indexes/{indexUid}/settings/searchable-attributes` instead of `POST` | ||||||
- The endpoint to update the sortable attributes settings is now `PUT /indexes/{indexUid}/settings/sortable-attributes` instead of `POST` | ||||||
- The endpoint to update the stop words settings is now `PUT /indexes/{indexUid}/settings/stop-words` instead of `POST` | ||||||
- The endpoint to update the synonyms settings is now `PUT /indexes/{indexUid}/settings/synonyms` instead of `POST` | ||||||
|
||||||
Done by @Kerollmops in #2452 | ||||||
|
||||||
# Other improvements 🔨 | ||||||
curquiza marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
|
||||||
- Geosearch: Support string type for `_geo`, `lat`, and `lng` fields (#2408 and meilisearch/milli#523) @irevoire | ||||||
- Improve ranking rules error message (meilisearch/milli#536, #2468) @matthias-wright | ||||||
- Remove the connection keep-alive timeout (#2471) @Thearas | ||||||
- Improve index uid validation upon API key creation (#2414) @pierre-l | ||||||
|
||||||
# Misc | ||||||
|
||||||
- Telemetry: handle the `X-Meilisearch-Client` header (#2374) @irevoire | ||||||
- Telemetry: send the analytics to `telemetry.meilisearch.com` instead of segment (#2429) @irevoire | ||||||
- Create custom error types for `TaskType`, `TaskStatus`, and `IndexUid` (#2460) @walterbm | ||||||
- Improve the Docker CIs (#2477 and #2491) @choznerol and @curquiza | ||||||
- Some internal changes (#2447, #2464, #2453, #2455) @MarinPostma @Kerollmops | ||||||
- Update dependencies (#2450) @Kerollmops | ||||||
- Add dump tests in CI (#2357) @irevoire | ||||||
- Deny warnings in CI (#2339) @MarinPostma | ||||||
- Change Nelson path (#2347) @curquiza | ||||||
- Re-integrate Clippy in the CI (#2424) @irevoire | ||||||
- Fix typo in README (#2448) @ryanrussell | ||||||
- Fix typo in code base comments (#2459) @ryanrussel | ||||||
- Update url of `movies.json` in README (#2422) @0x0x1 | ||||||
- Fix command in README (#2434) @0x0x1 | ||||||
|
||||||
---- | ||||||
|
||||||
❤️ Thanks again to our external contributors: | ||||||
- [Meilisearch](https://github.com/meilisearch/meilisearch): @0x0x1, @choznerol, @pierre-l, @ryanrussel, @Thearas, and @walterbm | ||||||
- [Milli](https://github.com/meilisearch/milli): @matthias-wright | ||||||
- [Charabia](https://github.com/meilisearch/charabia): @benny-n |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.