Skip to content
This repository was archived by the owner on Aug 5, 2025. It is now read-only.

Add release changelogs for v0.28.0 #13

Merged
merged 84 commits into from
Jul 11, 2022
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 Jun 7, 2022
7ccca36
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
6aa618b
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
016db99
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
6af6f41
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
2deb5a9
Update following reviews
curquiza Jun 8, 2022
989ecef
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
e4072c4
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
a6f0e45
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
2526a25
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
92c1da2
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
5b20272
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
0028e1e
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
f8bb9cb
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
f01fdd7
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
0a9638f
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
81f0ae2
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
024dc2b
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
cbc96bd
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
4280117
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
4a94d4c
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
146539f
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
f21aef2
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
4eedd9b
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
eb4748b
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
817ed4b
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
525dfb4
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
31a7347
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
ffd973c
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
ec4e0f6
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
3768751
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
3b2ab91
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
84bd69e
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
09c8348
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
c97e0f5
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
d8de3e5
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
6376cce
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
5f75349
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
ea8be40
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
46dc526
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
c2ee09f
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
1a6682c
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
b80a9b4
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
845ebc2
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
b27878c
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
133affa
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
cb705d2
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
8611a37
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
68000f3
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
e93477e
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
fcd4582
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
ff38be0
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
d52d72c
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
a0ffff9
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
c58c1b9
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
fe5b1ad
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
c1aec41
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
c14ca93
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
1bd15e3
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
2b21796
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 8, 2022
236689f
Remove extra spaces
curquiza Jun 8, 2022
54dfede
Add new sections about new limits
curquiza Jun 8, 2022
7373300
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 9, 2022
80b549a
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 9, 2022
9eef097
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 9, 2022
d70b72b
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 9, 2022
5eef4c8
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 9, 2022
c8b93cd
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 9, 2022
e2def26
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 9, 2022
0360950
Add PR about docker
curquiza Jun 9, 2022
ecc7f95
Add pierre contribution
curquiza Jun 9, 2022
2874d5d
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 9, 2022
e9c4753
Add the fix
curquiza Jun 9, 2022
9304d4e
Add contributor PR in the release changelogs
curquiza Jun 13, 2022
0935980
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 13, 2022
2134269
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 14, 2022
6eaedf6
Fix examples
curquiza Jun 15, 2022
2c46009
Add missing PR about docker CI improvement
curquiza Jun 16, 2022
7747212
Add new fix
curquiza Jun 23, 2022
4ac38d9
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jun 24, 2022
f5bfa93
Update meilisearch-release-changelogs/v0.28.0.md
curquiza Jul 5, 2022
06175fa
Add mini-dashboard PR
curquiza Jul 6, 2022
206d72e
Add bash command to create deterministic keys
curquiza Jul 6, 2022
020652d
Add link for new pagination guide
curquiza Jul 6, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
217 changes: 217 additions & 0 deletions meilisearch-release-changelogs/v0.28.0.md
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
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
<!-- 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]().

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So you can remove it directly from github before the release 🤓

Copy link
Member Author

Choose a reason for hiding this comment

The 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
However I will not put it in the v0.28.0 changelog on Monday haha


# New features 🚀

## 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.
- 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
}'
```

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.

## 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`.
- 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...
- 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 🔨

- 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