Skip to content

Commit 81d59b4

Browse files
bors[bot]maryamsulemani97guimachiavelli
authored
Merge #2098
2098: v1.0 r=guimachiavelli a=maryamsulemani97 Staging branch for v1.0. Closes #2092, #2087, #2086, #2085, #2082, #2079, #2078, #2077, #2075, #2073, #2072, #2069, #2068, #2067, #2066, #2065 Co-authored-by: maryamsulemani97 <maryam@meilisearch.com> Co-authored-by: gui machiavelli <hey@guimachiavelli.com> Co-authored-by: Maryam <90181761+maryamsulemani97@users.noreply.github.com> Co-authored-by: gui machiavelli <gui@meilisearch.com>
2 parents cce211c + 0bb031d commit 81d59b4

File tree

29 files changed

+554
-300
lines changed

29 files changed

+554
-300
lines changed

.vale/styles/Vocab/word_list/accept.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,3 +78,5 @@ AMIs
7878
[Cc]ancelation
7979
Brotli
8080
zlib
81+
glibc
82+
autogenerate

.vuepress/config.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
const ogprefix = 'og: http://ogp.me/ns#'
22
module.exports = {
3-
title: 'Meilisearch Documentation v0.30',
3+
title: 'Meilisearch Documentation v1.0',
44
description: 'Open source Instant Search Engine',
55
theme: 'default-prefers-color-scheme',
66
themeConfig: {
@@ -105,6 +105,7 @@ module.exports = {
105105
path: '/learn/getting_started/quick_start.html',
106106
collapsable: false,
107107
children: [
108+
'/learn/getting_started/supported_os',
108109
'/learn/getting_started/quick_start',
109110
{
110111
title: 'Meilisearch 101',
@@ -341,7 +342,7 @@ module.exports = {
341342
pattern: '**/*.md',
342343
strictExt: true,
343344
ignoreFilePattern: ['document_structure'],
344-
ignoreHashPattern: ['actions-2', 'primary-key-2', 'query-parameters-2', 'query-parameters-3'],
345+
ignoreHashPattern: ['actions-2', 'primary-key-2', 'query-parameters-2', 'query-parameters-3', 'body-2', 'body-3', 'phrase-search-2'],
345346
exitLevel: 'warn',
346347
},
347348
],

.vuepress/public/postman/meilisearch-collection.json

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"info": {
3-
"_postman_id": "a4f9078b-c91f-4399-9a98-5e4adc5099a2",
4-
"name": "Meilisearch v0.30",
3+
"_postman_id": "bcc2fb5b-d130-4a7b-9acf-c481248b2b9d",
4+
"name": "Meilisearch v1.0",
55
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
66
},
77
"item": [
@@ -481,7 +481,8 @@
481481
"{{url}}"
482482
],
483483
"path": [
484-
"tasks"
484+
"tasks",
485+
"cancel"
485486
],
486487
"query": [
487488
{
@@ -2035,7 +2036,7 @@
20352036
"bearer": [
20362037
{
20372038
"key": "token",
2038-
"value": "masterKey",
2039+
"value": "aSampleMasterKey",
20392040
"type": "string"
20402041
}
20412042
]

learn/advanced/dumps.md

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Creating a dump is also referred to as exporting it, whereas launching Meilisear
88

99
## Creating a dump
1010

11-
To create a dump of your dataset, to use the [create a dump endpoint](/reference/api/dump.md#create-a-dump):
11+
To create a dump of your dataset, use the [create a dump endpoint](/reference/api/dump.md#create-a-dump):
1212

1313
<CodeSamples id="post_dump_1" />
1414

@@ -50,7 +50,7 @@ This command should return an object with detailed information about the dump op
5050

5151
The dump creation process is an asynchronous task that takes time proportional to the size of your dataset. All indexes of the current instance are exported along with their documents and settings and saved as a single `.dump` file.
5252

53-
After dump creation is finished—when `status` is `succeeded`—the dump file is added to the dump directory. By default, this folder is named `dumps` and can be found in the same directory as your Meilisearch binary. You can customize [this using the `--dumps-dir` configuration option](/learn/configuration/instance_options.md#dumps-directory). **If the dump directory does not already exist when the dump creation process is called, Meilisearch will create it.**
53+
After dump creation is finished—when `status` is `succeeded`—the dump file is added to the dump directory. By default, this folder is named `dumps` and can be found in the same directory as your Meilisearch binary. You can customize [this using the `--dump-dir` configuration option](/learn/configuration/instance_options.md#dump-directory). **If the dump directory does not already exist when the dump creation process is called, Meilisearch will create it.**
5454

5555
If a dump file is visible in the file system, the dump process was successfully completed. **Meilisearch will never create a partial dump file**, even if you interrupt an instance while it is generating a dump.
5656

@@ -80,10 +80,6 @@ As the data contained in the dump needs to be indexed, the process will take som
8080
./meilisearch --import-dump /dumps/20200813-042312213.dump
8181
```
8282

83-
### Importing a dump for v0.20 or below
84-
85-
If you are using Meilisearch v0.20 or below, migration should be done in two steps. First, import your v0.20 dump into an instance running any version of Meilisearch between v0.21 and v0.25. Second, export another dump from this instance and import it to a final instance running your targeted version.
86-
8783
## Use cases
8884

8985
Dumps are used to restore your database after [updating Meilisearch](/learn/advanced/updating.md) or to copy your database to other Meilisearch instances without having to worry about their respective versions. For more on this subject, see a [comparison of snapshots and dumps](/learn/advanced/snapshots_vs_dumps.md).

learn/advanced/geosearch.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ Our restaurant dataset looks like this once we add geopositioning data:
9595
```
9696

9797
::: warning
98-
Trying to index a dataset with one or more documents containing badly formatted `_geo` values will cause Meilisearch to throw an [`invalid_geo_field`](/reference/errors/error_codes.md#invalid-geo-field) error. In this case, the update will fail and no documents will be added or modified.
98+
Trying to index a dataset with one or more documents containing badly formatted `_geo` values will cause Meilisearch to throw an [`invalid_document_geo_field`](/reference/errors/error_codes.md#invalid-document-geo-field) error. In this case, the update will fail and no documents will be added or modified.
9999
:::
100100

101101
### Using `_geo` with CSV
@@ -133,12 +133,12 @@ First, ensure your documents contain valid geolocation data and that you have ad
133133
_geoRadius(lat, lng, distance_in_meters)
134134
```
135135

136-
`lat` and `lng` must be floating point numbers indicating a geographic position. `distance_in_meters` must be an integer indicating the radius covered by the `_geoRadius` filter. If any of these three parameters are invalid or missing, Meilisearch will return an [`invalid_filter`](/reference/errors/error_codes.md#invalid-filter) error.
136+
`lat` and `lng` must be floating point numbers indicating a geographic position. `distance_in_meters` must be an integer indicating the radius covered by the `_geoRadius` filter. If any of these three parameters are invalid or missing, Meilisearch will return an [`invalid_search_filter`](/reference/errors/error_codes.md#invalid-search-filter) error.
137137

138138
[You can read more about using `filter` in our dedicated guide.](/learn/advanced/filtering_and_faceted_search.md#using-filters)
139139

140140
::: warning
141-
`_geo`, `_geoDistance`, and `_geoPoint` are not valid filter rules. Trying to use any of them with the `filter` search parameter will result in an [`invalid_filter`](/reference/errors/error_codes.md#invalid-filter) error.
141+
`_geo`, `_geoDistance`, and `_geoPoint` are not valid filter rules. Trying to use any of them with the `filter` search parameter will result in an [`invalid_search_filter`](/reference/errors/error_codes.md#invalid-search-filter) error.
142142
:::
143143

144144
### Examples
@@ -222,12 +222,12 @@ _geoPoint(0.0, 0.0):asc
222222

223223
`_geoPoint` requires two floating point numbers indicating a location's latitude and longitude. You must also specify whether the sort should be ascending (`asc`) or descending (`desc`). Ascending sort will prioritize results closer to the specified location, while descending sort will put the most distant results first.
224224

225-
If either `lat` or `lng` is invalid or missing, Meilisearch will return an [`invalid_sort`](/reference/errors/error_codes.md#invalid-sort) error. An error will also be thrown if you fail to indicate a sorting order.
225+
If either `lat` or `lng` is invalid or missing, Meilisearch will return an [`invalid_search_sort`](/reference/errors/error_codes.md#invalid-search-sort) error. An error will also be thrown if you fail to indicate a sorting order.
226226

227227
[You can read more about sorting in our dedicated guide.](/learn/advanced/sorting.md#sorting-results-at-search-time)
228228

229229
::: warning
230-
`_geo`, `_geoDistance`, and `_geoRadius` are not valid `sort` values. Trying to use any of them with the `sort` search parameter will result in an [`invalid_sort`](/reference/errors/error_codes.md#invalid-sort) error.
230+
`_geo`, `_geoDistance`, and `_geoRadius` are not valid `sort` values. Trying to use any of them with the `sort` search parameter will result in an [`invalid_search_sort`](/reference/errors/error_codes.md#invalid-search-sort) error.
231231
:::
232232

233233
### Examples

learn/advanced/known_limitations.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
Currently, Meilisearch has a number of known limitations. Some of these limitations are the result of intentional design trade-offs, while others can be attributed to [LMDB](/learn/advanced/storage.md), the key-value store that Meilisearch uses under the hood.
44

5-
This guide covers hard limits that cannot be altered. Meilisearch also has some default limits that _can_ be changed, such as a [default payload limit of 100MB](/learn/configuration/instance_options.md#payload-limit-size), a [default database size limit of 100GiB](/learn/configuration/instance_options.md#max-index-size), and a [default search limit of 20 hits](/reference/api/search.md#limit).
5+
This guide covers hard limits that cannot be altered. Meilisearch also has some default limits that _can_ be changed, such as a [default payload limit of 100MB](/learn/configuration/instance_options.md#payload-limit-size) and a [default search limit of 20 hits](/reference/api/search.md#limit).
66

77
## Maximum number of query words
88

@@ -112,3 +112,15 @@ user = 1 OR user = 2 […] OR user = 1500 OR user = 1501 […] OR user = 2000 OR
112112
**Limitation:** Meilisearch might throw an internal error when indexing large batches of documents.
113113

114114
**Explanation:** Indexing a large batch of documents, such as a JSON file over 3.5GB in size, can result in Meilisearch opening too many file descriptors. Depending on your machine, this might reach your system's default resource usage limits and trigger an internal error. Use [`ulimit`](https://www.ibm.com/docs/en/aix/7.1?topic=u-ulimit-command) or a similar tool to increase resource consumption limits before running Meilisearch. For example, call `ulimit -Sn 3000` in a UNIX environment to raise the number of allowed open file descriptors to 3000.
115+
116+
## Maximum database size
117+
118+
**Limitation:** The maximum size of an index is 500GiB, and the maximum size of the task database is 10GiB.
119+
120+
**Explanation:** Meilisearch allocates all the virtual memory it requires upfront. The maximum database size ensures instances can contain several large indexes without reaching operating system limits on the amount of virtual memory available to a single process.
121+
122+
## Maximum number of indexes in an instance
123+
124+
**Limitation:** A single Meilisearch instance can safely contain around 180 indexes in Linux and macOS environments, and around 15 indexes in Windows environments.
125+
126+
**Explanation:** Operating systems restrict the amount of virtual memory available to a single process. Since Meilisearch allocates the maximum index size for each index upfront, this effectively creates a limit on how many indexes an instance can contain. The values provided are indicative: because of the particularities of each specific setup, the actual maximum number of indexes per instance will vary from machine to machine. A Linux install might contain 200 indexes without issue, or return allocation failures at 181 indexes depending on the runtime environment.

learn/advanced/snapshots.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,17 +24,17 @@ Now snapshots are created in `mySnapShots/` directory.
2424

2525
The first snapshot is created on launching Meilisearch. After that, snapshots are created routinely on a set interval until you deactivate snapshots by ending the Meilisearch instance. By default, one snapshot is taken every 24 hours.
2626

27-
The amount of time between each new snapshot can be modified with [`--snapshot-interval-sec`](/learn/configuration/instance_options.md#snapshot-interval):
27+
The interval between each new snapshot can be modified by providing an integer to [`--schedule-snapshot`](/learn/configuration/instance_options.md#schedule-snapshot-creation):
2828

2929
```bash
30-
meilisearch --schedule-snapshot --snapshot-interval-sec 3600
30+
meilisearch --schedule-snapshot=3600
3131
```
3232

3333
After running the above code, a snapshot is created every hour (3600 seconds).
3434

3535
During snapshot creation, old snapshots are **automatically overwritten**. This means only the most recent snapshot should be present in the folder at any given time.
3636

37-
[[More about snapshots flags and environment variables]](/learn/configuration/instance_options.md#schedule-snapshot-creation)
37+
[More about snapshots flags and environment variables](/learn/configuration/instance_options.md#schedule-snapshot-creation)
3838

3939
## Starting from a snapshot
4040

learn/advanced/sorting.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ By default, Meilisearch focuses on ordering results according to their relevancy
55
This can be useful in many situations, such as when a user wants to see the cheapest products available in a webshop.
66

77
::: tip
8-
Sorting at search time can be particularly effective when combined with [placeholder searches](/learn/what_is_meilisearch/features.md#placeholder-search).
8+
Sorting at search time can be particularly effective when combined with [placeholder searches](/reference/api/search.md#placeholder-search).
99
:::
1010

1111
## Configuring Meilisearch for sorting at search time

learn/advanced/storage.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,7 @@ The choice of LMDB comes with certain pros and cons, especially regarding databa
2828

2929
#### Database size
3030

31-
When deleting documents from a Meilisearch index, you may notice disk space usage remains the same. This happens because LMDB internally marks that space as free, but does not make it available for the operating system at large. This design choice leads to better performance, as there is no need for periodic compaction operations. As a result, disk space occupied by LMDB (and thus by Meilisearch) tends to increase over time.
32-
33-
It is not currently possible to calculate the precise maximum amount of space a Meilisearch instance can occupy. However, disk space usage is dictated in part by index and task database size. This means you can have a general idea of the upper size boundaries by taking into account the number of indexes in your instance together with the values configured for `--max-index-size` and `--max-task-db`.
31+
When deleting documents from a Meilisearch index, you may notice disk space usage remains the same. This happens because LMDB internally marks that space as free, but does not make it available for the operating system at large. This design choice leads to better performance, as there is no need for periodic compaction operations. As a result, disk space occupied by LMDB (and thus by Meilisearch) tends to increase over time. It is not possible to calculate the precise maximum amount of space a Meilisearch instance can occupy.
3432

3533
#### Memory usage
3634

learn/advanced/updating.md

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ This guide only works for versions v0.15 and above. If you are using an older ve
2020

2121
This section contains instructions for upgrading from specific versions. Most versions don't require version-specific steps and you should be able to upgrade directly. If the version you are upgrading from isn't listed here, no additional steps are required.
2222

23+
- If you are updating **from v0.20 or below**, please ensure all updates finish processing before creating the dump. `enqueued` updates will not be exported and may result in data loss.
24+
2325
- If you are using **v0.24 or below**, use the `X-Meili-API-Key: API_KEY` authorization header:
2426

2527
<CodeSamples id="updating_guide_check_version_old_authorization_header" />
@@ -79,7 +81,7 @@ Once the status is `processed`, you're good to go. Repeat this process for all i
7981

8082
### Create the dump
8183

82-
Before creating your dump, make sure that your [dump directory](/learn/configuration/instance_options.md#dumps-directory) is somewhere accessible. By default, dumps are created in a folder called `dumps` at the root of your Meilisearch directory.
84+
Before creating your dump, make sure that your [dump directory](/learn/configuration/instance_options.md#dump-directory) is somewhere accessible. By default, dumps are created in a folder called `dumps` at the root of your Meilisearch directory.
8385

8486
**Cloud platforms** like DigitalOcean, AWS, and GCP are configured to store dumps in the `/var/opt/meilisearch/dumps` directory.
8587

@@ -258,12 +260,6 @@ For **cloud platforms**, move the new Meilisearch binary to the `/usr/bin` direc
258260
mv meilisearch /usr/bin/meilisearch
259261
```
260262

261-
::: warning
262-
If you are using Meilisearch v0.20 or below, migration should be done in two steps. First, import your dump into an instance running any version of Meilisearch from v0.21 to v0.24, inclusive. Second, export another dump from this instance and import it to a final instance running your targeted version.
263-
264-
Once Meilisearch v1 is released, this two-step process won't be necessary as v1 will be compatible with dumps from all previous versions.
265-
:::
266-
267263
## Step 3: Import data
268264

269265
### Launch Meilisearch and import the dump

0 commit comments

Comments
 (0)