Skip to content

v1.15 #3248

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 17 commits into from
Jun 9, 2025
Merged

v1.15 #3248

Show file tree
Hide file tree
Changes from all commits
Commits
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
7 changes: 7 additions & 0 deletions .code-samples.meilisearch.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -831,6 +831,13 @@ typo_tolerance_guide_4: |-
"twoTypos": 10
}
}'
typo_tolerance_guide_5: |-
curl \
-X PATCH 'MEILISEARCH_URL/indexes/movies/settings/typo-tolerance' \
-H 'Content-Type: application/json' \
--data-binary '{
"disableOnNumbers": true
}'
updating_guide_check_version_new_authorization_header: |-
curl \
-X GET 'http://<your-domain-name>/version' \
Expand Down
4 changes: 2 additions & 2 deletions assets/misc/meilisearch-collection-postman.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"info": {
"_postman_id": "b321d331-d809-4909-8e49-e29c8d749d32",
"name": "Meilisearch v1.14",
"name": "Meilisearch v1.15",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
"_exporter_id": "25294324"
},
Expand Down Expand Up @@ -1898,7 +1898,7 @@
],
"body": {
"mode": "raw",
"raw": "{\n \"minWordSizeForTypos\": {\n \"oneTypo\": 2,\n \"twoTypos\": 11\n },\n \"disableOnWords\": [\"Prince\"],\n \"disableOnAttributes\": [\"genre\"]\n}"
"raw": "{\n \"minWordSizeForTypos\": {\n \"oneTypo\": 2,\n \"twoTypos\": 11\n },\n \"disableOnWords\": [\"Prince\"],\n \"disableOnAttributes\": [\"genre\"],\n \"disableOnNumbers\": true\n}"
},
"url": {
"raw": "{{url}}/indexes/{{indexUID}}/settings/typo-tolerance",
Expand Down
2 changes: 1 addition & 1 deletion docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@
"navigation": {
"versions": [
{
"version": "v1.14",
"version": "v1.15",
"anchors": [
{
"anchor": "Learn",
Expand Down
16 changes: 8 additions & 8 deletions guides/docker.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Docker is a tool that bundles applications into containers. Docker containers en
Docker containers are distributed in images. To use Meilisearch, use the `docker pull` command to download a Meilisearch image:

```sh
docker pull getmeili/meilisearch:v1.14
docker pull getmeili/meilisearch:v1.15
```

Meilisearch deploys a new Docker image with every release of the engine. Each image is tagged with the corresponding Meilisearch version, indicated in the above example by the text following the `:` symbol. You can see [the full list of available Meilisearch Docker images](https://hub.docker.com/r/getmeili/meilisearch/tags#!) on Docker Hub.
Expand All @@ -29,7 +29,7 @@ After completing the previous step, use `docker run` to launch the Meilisearch i
docker run -it --rm \
-p 7700:7700 \
-v $(pwd)/meili_data:/meili_data \
getmeili/meilisearch:v1.14
getmeili/meilisearch:v1.15
```

### Configure Meilisearch
Expand All @@ -45,7 +45,7 @@ docker run -it --rm \
-p 7700:7700 \
-e MEILI_MASTER_KEY='MASTER_KEY'\
-v $(pwd)/meili_data:/meili_data \
getmeili/meilisearch:v1.14
getmeili/meilisearch:v1.15
```

#### Passing instance options with CLI arguments
Expand All @@ -56,7 +56,7 @@ If you want to pass command-line arguments to Meilisearch with Docker, you must
docker run -it --rm \
-p 7700:7700 \
-v $(pwd)/meili_data:/meili_data \
getmeili/meilisearch:v1.14 \
getmeili/meilisearch:v1.15 \
meilisearch --master-key="MASTER_KEY"
```

Expand All @@ -74,7 +74,7 @@ To keep your data intact between reboots, specify a dedicated volume by running
docker run -it --rm \
-p 7700:7700 \
-v $(pwd)/meili_data:/meili_data \
getmeili/meilisearch:v1.14
getmeili/meilisearch:v1.15
```

The example above uses `$(pwd)/meili_data`, which is a directory in the host machine. Depending on your OS, mounting volumes from the host to the container might result in performance loss and is only recommended when developing your application.
Expand All @@ -89,7 +89,7 @@ To import a dump, use Meilisearch's `--import-dump` command-line option and spec
docker run -it --rm \
-p 7700:7700 \
-v $(pwd)/meili_data:/meili_data \
getmeili/meilisearch:v1.14 \
getmeili/meilisearch:v1.15 \
meilisearch --import-dump /meili_data/dumps/20200813-042312213.dump
```

Expand All @@ -109,7 +109,7 @@ To generate a Meilisearch snapshot with Docker, launch Meilisearch with `--sched
docker run -it --rm \
-p 7700:7700 \
-v $(pwd)/meili_data:/meili_data \
getmeili/meilisearch:v1.14 \
getmeili/meilisearch:v1.15 \
meilisearch --schedule-snapshot --snapshot-dir /meili_data/snapshots
```

Expand All @@ -121,7 +121,7 @@ To import a snapshot, launch Meilisearch with the `--import-snapshot` option:
docker run -it --rm \
-p 7700:7700 \
-v $(pwd)/meili_data:/meili_data \
getmeili/meilisearch:v1.14 \
getmeili/meilisearch:v1.15 \
meilisearch --import-snapshot /meili_data/snapshots/data.ms.snapshot
```

Expand Down
8 changes: 7 additions & 1 deletion learn/filtering_and_sorting/filter_expression_reference.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -69,14 +69,20 @@ genres != action

### Comparison (`>`, `<`, `>=`, `<=`)

The comparison operators (`>`, `<`, `>=`, `<=`) select documents satisfying a comparison. Comparison operators only apply only to numerical values.
The comparison operators (`>`, `<`, `>=`, `<=`) select documents satisfying a comparison. Comparison operators apply to both numerical and string values.

The expression below returns all documents with a user rating above 85:

```
rating.users > 85
```

String comparisons resolve in lexicographic order: symbols followed by numbers followed by letters in alphabetic order. The expression below returns all documents released after the first day of 2004:

```
release_date > 2004-01-01
```

### `TO`

`TO` is equivalent to `>= AND <=`. The following expression returns all documents with a rating of 80 or above but below 90:
Expand Down
36 changes: 4 additions & 32 deletions learn/filtering_and_sorting/working_with_dates.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ In this guide, you will learn about Meilisearch's approach to date and time valu

## Preparing your documents

To filter and sort search results chronologically, your documents must have at least one numeric field containing a [UNIX timestamp](https://kb.narrative.io/what-is-unix-time).
To filter and sort search results chronologically, your documents must have at least one field containing a [UNIX timestamp](https://kb.narrative.io/what-is-unix-time). You may also use a string with a date in a format that can be sorted lexicographically, such as `"2025-01-13"`.

As an example, consider a database of video games. In this dataset, the release year is formatted as a timestamp:

Expand All @@ -41,39 +41,11 @@ As an example, consider a database of video games. In this dataset, the release
]
```

If your date field is expressed in a format other than a numeric timestamp, like [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html), you must convert it before indexing it with Meilisearch.

Most programming languages have built-in tools to help you with this process. The JavaScript example below converts a game's release date, `"2018-10-18"`, to a numeric timestamp:

```js
let game = {
"id": 0,
"title": "Return of the Obra Dinn",
"genre": "adventure",
"release_date": "2018-10-18T00:00Z"
};

const timestampInMilliseconds = Date.parse(game.release_date); // Date.parse returns the timestamp in milliseconds
const timestamp = timestampInMilliseconds / 1000; // UNIX timestamps must be in seconds

game = {
"id": 0,
"title": "Return of the Obra Dinn",
"genre": "adventure",
"release_date": "2018-10-18T00:00Z",
"release_timestamp": timestamp
};
```

<Tip>
When preparing your dataset, it can be useful to leave the original date and time fields in your documents intact. In the example above, we keep the `release_date` field because it is more readable than the raw `release_timestamp`.
</Tip>

After adding a numeric timestamp to all documents, [index your data](/reference/api/documents#add-or-replace-documents) as usual. The example below adds a <a id="downloadVideogames" href="/assets/datasets/videogames.json" download="videogames.json">videogame dataset</a> to a `games` index:
Once all documents in your dataset have a date field, [index your data](/reference/api/documents#add-or-replace-documents) as usual. The example below adds a <a id="downloadVideogames" href="/assets/datasets/videogames.json" download="videogames.json">videogame dataset</a> to a `games` index:

<CodeSamplesDateGuideIndex1 />

## Filtering by timestamp
## Filtering by date

To filter search results based on their timestamp, add your document's timestamp field to the list of [`filterableAttributes`](/reference/api/settings#update-filterable-attributes):

Expand All @@ -83,7 +55,7 @@ Once you have configured `filterableAttributes`, you can filter search results b

<CodeSamplesDateGuideFilter1 />

## Sorting by timestamp
## Sorting by date

To sort search results chronologically, add your document's timestamp field to the list of [`sortableAttributes`](/reference/api/settings#update-sortable-attributes):

Expand Down
10 changes: 10 additions & 0 deletions learn/relevancy/typo_tolerance_settings.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -65,3 +65,13 @@ You can disable typo tolerance for a specific [document attribute](/learn/gettin
<CodeSamplesTypoToleranceGuide2 />

With the above settings, matches in the `title` attribute will not tolerate any typos. For example, a search for `beautiful` (9 characters) will not match the movie "Biutiful" starring Javier Bardem. With the default settings, this would be a match.

## `disableOnNumbers`

You can disable typo tolerance for all numeric values across all indexes and search requests by setting `disableOnNumbers` to `true`:

<CodeSamplesTypoToleranceGuide5 />

By default, typo tolerance on numerical values is turned on. This may lead to false positives, such as a search for `2024` matching documents containing `2025` or `2004`.

When `disableOnNumbers` is set to `true`, queries with numbers only return exact matches. Besides reducing the number of false positives, disabling typo tolerance on numbers may also improve indexing performance.
2 changes: 2 additions & 0 deletions learn/resources/experimental_features_overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -57,3 +57,5 @@ Activating or deactivating experimental features this way does not require you t
| [Dumpless upgrade](/learn/self_hosted/configure_meilisearch_at_launch#dumpless-upgrade) | Upgrade Meilisearch without generating a dump | API route |
| [Composite embedders](/reference/api/settings#composite-embedders) | Enable composite embedders | API route |
| [Search query embedding cache](/learn/self_hosted/configure_meilisearch_at_launch#search-query-embedding-cache) | Enable a cache for search query embeddings | CLI flag or environment variable |
| [Uncompressed snapshots](/learn/self_hosted/configure_meilisearch_at_launch#uncompressed-snapshots) | Disable snapshot compaction | CLI flag or environment variable |
| [Maximum batch payload size](/learn/self_hosted/configure_meilisearch_at_launch#maximum-batch-payload-size) | Limit batch payload size | CLI flag or environment variable |
16 changes: 16 additions & 0 deletions learn/self_hosted/configure_meilisearch_at_launch.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -435,6 +435,13 @@ When using the configuration file, it is also possible to explicitly pass a bool

Sets the directory where Meilisearch will store snapshots.

### Uncompressed snapshots <NoticeTag type="experimental" label="experimental" />

**Environment variable**: `MEILI_EXPERIMENTAL_NO_SNAPSHOT_COMPACTION`<br />
**CLI option**: `--experimental-no-snapshot-compaction`<br />

Disables snapshot compression. This may significantly speed up snapshot creation at the cost of bigger snapshot files.

### Import snapshot

**Environment variable**: `MEILI_IMPORT_SNAPSHOT`<br />
Expand Down Expand Up @@ -506,6 +513,15 @@ Includes an authentication token in the authorization header when notifying the

Limit the number of tasks Meilisearch performs in a single batch. May improve stability in systems handling a large queue of resource-intensive tasks.

### Maximum batch payload size <NoticeTag type="experimental" label="experimental" />

**Environment variable**: `MEILI_EXPERIMENTAL_LIMIT_BATCHED_TASKS_TOTAL_SIZE`<br />
**CLI option**: `--experimental-limit-batched-tasks-total-size`<br />
**Default value**: `None`<br />
**Expected value**: an integer

Sets a maximum payload size for batches in bytes. Smaller batches are less efficient, but consume less RAM and reduce immediate latency.

### Replication parameters <NoticeTag type="experimental" label="experimental" />

<Warning>
Expand Down
4 changes: 2 additions & 2 deletions learn/self_hosted/install_meilisearch_locally.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -53,14 +53,14 @@ These commands launch the **latest stable release** of Meilisearch.

```bash
# Fetch the latest version of Meilisearch image from DockerHub
docker pull getmeili/meilisearch:v1.14
docker pull getmeili/meilisearch:v1.15

# Launch Meilisearch in development mode with a master key
docker run -it --rm \
-p 7700:7700 \
-e MEILI_ENV='development' \
-v $(pwd)/meili_data:/meili_data \
getmeili/meilisearch:v1.14
getmeili/meilisearch:v1.15
# Use ${pwd} instead of $(pwd) in PowerShell
```

Expand Down
20 changes: 16 additions & 4 deletions learn/update_and_migration/updating.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,9 @@ Once the project has been successfully updated, you will receive an email confir

## Updating a self-hosted Meilisearch instance

<Warning>
You may update a self-hosted instance in one of two ways: with or without a dump.

<Warning>
This guide only works for v0.15 and above. If you are using an older Meilisearch release, please [contact support](https://discord.meilisearch.com) for more information.
</Warning>

Expand Down Expand Up @@ -156,9 +156,21 @@ Meilisearch should launch normally and immediately create a new `UpgradeDatabase

While the task is processing, you may continue making search queries. You may also enqueue new tasks. Meilisearch will only process new tasks once `UpgradeDatabase` is completed.

<Warning>
If after the upgrade is completed the task status is set to `failed` or Meilisearch returns internal error messages to your queries, [restart your instance from the snapshot](/learn/data_backup/snapshots#starting-from-a-snapshot) you generated during step 1. You may then retry the upgrade, or upgrade using a dump. You are also welcome to open an issue on the [Meilisearch repository](https://github.com/meilisearch/meilisearch).
</Warning>
#### Rolling back an update

If the upgrade is taking too long, or if after the upgrade is completed its task status is set to `failed`, you can cancel the upgrade task.

Cancelling the update task automatically rolls back your database to its state before the upgrade began.

After launching Meilisearch with `--experimental-dumpless-upgrade` flag:

1. Cancel the `databaseUpgrade` task
2. If you cancelled the update before it failed, skip to the next step. If the update failed, relaunch Meilisearch using the binary of the version you were upgrading to
3. Wait for Meilisearch to process your cancellation request
4. Replace the new binary with the binary of the previous version
5. Relaunch Meilisearch

If you are upgrading Meilisearch to \<= v1.14, you must instead [restart your instance from the snapshot](/learn/data_backup/snapshots#starting-from-a-snapshot) you generated during step 1. You may then retry the upgrade, or upgrade using a dump. You are also welcome to open an issue on the [Meilisearch repository](https://github.com/meilisearch/meilisearch).

### Using a dump

Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"version": "1.14.0",
"version": "1.15.0",
"homepage": "https://meilisearch.com/docs",
"license": "MIT",
"repository": "meilisearch/documentation",
Expand Down
Loading