Skip to content
This repository was archived by the owner on Mar 21, 2024. It is now read-only.

Commit 9eb937f

Browse files
gmourierdureuillcurquizamaryamsulemani97brunoocasali
authored
Release v1.0.0 (#201)
* Bump open-api spec * Simplify dump version section since v1.0 can import all dumps (#203) * Simplify dump version section since v1.0 can import all dumps * Relax target import version Co-authored-by: Clémentine Urquizar - curqui <clementine@meilisearch.com> --------- Co-authored-by: Clémentine Urquizar - curqui <clementine@meilisearch.com> * Rename dump command from `--dumps-dir` to `--dump-dir` (#204) * Propagate the change to --dumps-dir to the specification * Rename section header in openAPI documentation * Dump destination -> Dump directory * Finish destination -> directory renaming Co-authored-by: Guillaume Mourier <guillaume@meilisearch.com> --------- Co-authored-by: Guillaume Mourier <guillaume@meilisearch.com> * Update the specification of soft-deleted documents (#206) * Grammarly'd soft-deletion page * Soft-deleted: update the functional specification * Remove `--max-index-size` and `--max-task-db-size` (#207) * Robustify Primary Key Inference - Update related errors (#208) * update inference errors * Add `index_` prefix to newly-introduced error codes Co-authored-by: Guillaume Mourier <guillaume@meilisearch.com> * Update error messages following meilisearch/meilisearch#3301 --------- Co-authored-by: Guillaume Mourier <guillaume@meilisearch.com> * Reject master keys shorter than 16 bytes in `production` (#209) * Specify what happens when too short a master key is provided * Change error message * Characters -> bytes for master key length * Specify Error and Warning messages regarding the master-key * Update text/0119-instance-options.md * Update text/0119-instance-options.md * Specify warning messages when a master key is missing or lower than 16 bytes in env development * Apply suggestions from code review Co-authored-by: Maryam <90181761+maryamsulemani97@users.noreply.github.com> * Replace export MEILI_MASTER_KEY by --master-key * Apply suggestions from code review Co-authored-by: Louis Dureuil <louis.dureuil@gmail.com> --------- Co-authored-by: Guillaume Mourier <guillaume@meilisearch.com> Co-authored-by: Maryam <90181761+maryamsulemani97@users.noreply.github.com> * Add `OFF` log level to spec (#211) * Errors handling enhancement (#212) * Replace invalid_duplicate_index_found error code to invalid_swap_duplicate_index_found * Remove bad_request for settings properties error; replaced with dedicated error codes * cleaning old bad usage of the spec and replaces it with relevant information * Split search bad_request error code to dedicated error code * Catch-up: remove unused dump_not_found error code * Do an update pass on old specs format * Details context, variant cases * Add system type;Split invalid_task_date_filter to dedicated error codes * Precise index API bad_request error code to dedicated one * Precise bad_request to a dedicated code for the swap indexes API * Use invalid_index_primary_key when ?primaryKey is invalid instead of bad_request; + add TODO bad_request we forgot * marking missed bad_request on /keys * Add missed bad_request codes for GET /keys * Add missed bad_request codes for GET /documents * Removes _filter suffix from query parameter error_code for tasks API; Add missing bad_request error_code on GET /tasks * Add missing bad_request error codes on GET /indexes * remove future possibilities * Replace search_Parameter by search into the /search error codes naming * Replace bad_request code when the mandatory uid is missing when posting an index resource; split the generic missing_parameter to dedicated error codes * fix sentence sense * Split immutable_field to dedicated api key fields * Removes missing todo marker; Add missing part * Add suggested review comments * Catch-up/Add when an invalid index uid is gen for the :indexUid path parameter * Add immutable_index_uid error code on PATCH /indexes/:indexUid when uid is specified in the request payload * invalid_settings_ranking_rules can only be synchronous * Details async/sync case for error related to minWordsSizeForTypos object * Add immutable_index_created_at and immutable_index_updated_at for the Index API Resource * Add missing_swap_indexes on the POST swap-indexes resource * Update text/0061-error-format-and-definitions.md Co-authored-by: Bruno Casali <brunoocasali@gmail.com> * merge the :deserr_helper and the :deserr_location * Rephrase and catch-up miss * get rids of the index_not_accessible error code since no one remember about it --------- Co-authored-by: Bruno Casali <brunoocasali@gmail.com> Co-authored-by: Tamo <tamo@meilisearch.com> * Add error message when doing a migration (#213) * Add the migration CLI error * Update text/0105-dumps-api.md --------- Co-authored-by: Guillaume Mourier <guillaume@meilisearch.com> * Merge snapshot options (#214) * Merge `--schedule-snapshot` and `--snapshot-interval-sec` options * Update text/0119-instance-options.md --------- Co-authored-by: Guillaume Mourier <guillaume@meilisearch.com> * Remove any reference to the disable-auto-batching argument (#215) Co-authored-by: Guillaume Mourier <guillaume@meilisearch.com> * Specify the effect of the `*` value when used in the task filters (#218) --------- Co-authored-by: Louis Dureuil <louis.dureuil@gmail.com> Co-authored-by: Clémentine Urquizar - curqui <clementine@meilisearch.com> Co-authored-by: Maryam <90181761+maryamsulemani97@users.noreply.github.com> Co-authored-by: Bruno Casali <brunoocasali@gmail.com> Co-authored-by: Tamo <tamo@meilisearch.com> Co-authored-by: Clément Renault <clement@meilisearch.com>
1 parent b2e4b3d commit 9eb937f

28 files changed

+2044
-790
lines changed

open-api.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ openapi: 3.1.0
22
info:
33
title: Meilisearch Core API
44
description: 'Search documents, configure and manage the Meilisearch engine.'
5-
version: 0.30.0
5+
version: 1.0.0
66
contact:
77
name: Meilisearch
88
email: bonjour@Meilisearch.com
@@ -1227,7 +1227,7 @@ paths:
12271227
operationId: dumps.create
12281228
summary: Create a Dump
12291229
description: |
1230-
Triggers a dump creation process. Once the process is complete, a dump is created in the [dumps directory](https://docs.meilisearch.com/reference/features/configuration.html#dumps-destination). If the dumps directory does not exist yet, it will be created.
1230+
Triggers a dump creation process. Once the process is complete, a dump is created in the [dump directory](https://docs.meilisearch.com/reference/features/configuration.html#dump-directory). If the dump directory does not exist yet, it will be created.
12311231
tags:
12321232
- Dumps
12331233
security:

text/0033-logging.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ Instead of using `RUST_LOG`, we create a `MEILI_LOG_LEVEL` environment variable
138138
| INFO | Default Log Level. It displays high level informations of events occuring in the search engine. |
139139
| DEBUG | Used for debugging and development purposes. More verbose than INFO. |
140140
| TRACE | Display everything happening at engine level. Can be useful for rust developers dealing with complex issues |
141+
| OFF | Disable the logs. |
141142

142143

143144
##### Log Format
@@ -149,7 +150,7 @@ Instead of using `RUST_LOG`, we create a `MEILI_LOG_LEVEL` environment variable
149150
###### Mandatory log format part. E.g [TIME_FORMAT LOG_LEVEL MODULE] part.
150151

151152
- Time when the request was started to process (in rfc3339 format)
152-
- Log levels are `ERROR`, `WARN`, `INFO`, `DEBUG`, `TRACE`.
153+
- Log levels are `ERROR`, `WARN`, `INFO`, `DEBUG`, `TRACE`, `OFF`.
153154
- The module part gives information about the module that records the log.
154155

155156
###### HTTP Call

text/0034-telemetry-policies.md

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -76,20 +76,16 @@ The collected data is sent to [Segment](https://segment.com/). Segment is a plat
7676
| `infos.env` | MeiliSearch env | production | Every hour |
7777
| `infos.db_path` | `true` if `--db-path`/`MEILI_DB_PATH` is specified, otherwise `false` | true | Every Hour |
7878
| `infos.import_dump` | `true` if `--import-dump` is specified, otherwise `false` | true | Every Hour |
79-
| `infos.dumps_dir` | `true` if `--dumps-dir`/`MEILI_DUMPS_DIR` is specified, otherwise `false` | true | Every Hour |
79+
| `infos.dump_dir` | `true` if `--dump-dir`/`MEILI_DUMP_DIR` is specified, otherwise `false` | true | Every Hour |
8080
| `infos.ignore_missing_dump` | `true` if `--ignore-missing-dump` is specified to true, otherwise `false` | true | Every Hour |
8181
| `infos.ignore_dump_if_db_exists` | `true` if `--ignore-dump-if-db-exists` is specified to true, otherwise `false` | true | Every Hour |
8282
| `infos.import_snapshot` | `true` if `--import-snapshot` is specified, otherwise `false` | true | Every Hour |
83-
| `infos.schedule_snapshot` | `true` if `--schedule_snapshot`/`MEILI_SCHEDULE_SNAPSHOT` is specified to true, otherwise `false` | true | Every hour |
83+
| `infos.schedule_snapshot` | Value of `--schedule_snapshot`/`MEILI_SCHEDULE_SNAPSHOT` if scheduled snapshots are enabled, otherwise `None` | 86400 | Every hour |
8484
| `infos.snapshot_dir` | `true` if `--snapshot-dir`/`MEILI_SNAPSHOT_DIR` is specified to true, otherwise `false` | true | Every Hour |
85-
| `infos.snapshot_interval_sec` | Value of `--snapshot_interval_sec`/`MEILI_SNAPSHOT_INTERVAL_SEC` in seconds | 86400 | Every Hour |
8685
| `infos.ignore_missing_snapshot` | `true` if `--ignore_missing_snapshot` is specified to true, otherwise `false` | true | Every Hour |
8786
| `infos.ignore_snapshot_if_db_exists` | `true` if `--ignore_snapshot_if_db_exists` is specified to true, otherwise `false` | true | Every Hour |
8887
| `infos.http_addr` | `true` if `--http-addr`/`MEILI_HTTP_ADDR` is specified, otherwise `false` | true| Every Hour |
89-
| `infos.max_index_size` | Value of `--max-index-size`/`MEILI_INDEX_SIZE` in bytes | 336042103 | Every Hour |
90-
| `infos.max_task_db_size` | Value of `--max-task-db-size`/`MEILI_MAX_TASK_DB_SIZE` in bytes | 336042103 | Every Hour |
9188
| `infos.http_payload_size_limit` | Value of `--http-payload-size-limit`/`MEILI_HTTP_PAYLOAD_SIZE_LIMIT` in bytes | 336042103 | Every Hour |
92-
| `infos.disable_auto_batching` | `true` if `--disable-auto-batching`/`MEILI_DISABLE_AUTO_BATCHING` is specified to true, otherwise `false` | `true` | Every Hour |
9389
| `infos.log_level` | Value of `--log-level`/`MEILI_LOG_LEVEL` | debug | Every Hour |
9490
| `infos.max_indexing_memory` | Value of `--max-indexing-memory`/`MEILI_MAX_INDEXING_MEMORY` in bytes | 336042103 | Every Hour |
9591
| `infos.max_indexing_threads` | Value of `--max-indexing-threads`/`MEILI_MAX_INDEXING_THREADS` in integer | 4 | Every Hour |
@@ -173,7 +169,7 @@ The collected data is sent to [Segment](https://segment.com/). Segment is a plat
173169
| `filtered_by_before_finished_at` | `true` if tasks are filtered by the `beforeFinishedAt` query parameter, otherwise `false` | false | `Tasks Seen`, `Tasks Canceled`, `Tasks Deleted` |
174170
| `filtered_by_after_finished_at` | `true` if tasks are filtered by the `afterFinishedAt` query parameter, otherwise `false` | false | `Tasks Seen`, `Tasks Canceled`, `Tasks Deleted` |
175171
| `per_index_uid` | `true` if an uid is used to fetch an index stat resource, otherwise `false` | false | `Stats Seen` |
176-
| `swap_operation_number` | The number of swap operation given in `POST /swap-indexes` API call | 2 | `Indexes Swapped` |
172+
| `swap_operation_number` | The number of swap operation given in `POST /swap-indexes` API call | 2 | `Indexes Swapped` |
177173
| `matching_strategy.most_used_strategy` | Most used word matching strategy among all search requests in this batch | `last` | `Documents Searched POST`, `Documents Searched GET` |
178174
| `per_document_id` | `true` if `DELETE /indexes/:indexUid/documents/:documentUid` endpoint was used in this batch, otherwise `false` | false | `Documents Deleted` |
179175
| `clear_all` | `true` if `DELETE /indexes/:indexUid/documents` endpoint was used in this batch, otherwise `false` | false | `Documents Deleted` |
@@ -204,20 +200,16 @@ This property allows us to gather essential information to better understand on
204200
| infos.env | Value of `--env`/`MEILI_ENV` | `production` |
205201
| infos.db_path | `true` if `--db-path`/`MEILI_DB_PATH` is specified, otherwise `false` | `true`|
206202
| infos.import_dump | `true` if `--import-dump` is specified, otherwise `false` | `true` |
207-
| infos.dumps_dir | `true` if `--dumps-dir`/`MEILI_DUMPS_DIR` is specified, otherwise `false` | `true` |
203+
| infos.dump_dir | `true` if `--dump-dir`/`MEILI_DUMP_DIR` is specified, otherwise `false` | `true` |
208204
| infos.ignore_missing_dump | `true` if `--ignore-missing-dump` is specified to true, otherwise `false` | `true` |
209205
| infos.ignore_dump_if_db_exists | `true` if `--ignore-dump-if-db-exists` is specified to true, otherwise `false` | `true` |
210206
| infos.import_snapshot | `true` if `--import-snapshot` is specified, otherwise `false` | `true` |
211-
| infos.schedule_snapshot | `true` if `--schedule-snapshot`/`MEILI_SCHEDULE_SNAPSHOT` is specified to true, otherwise `false` | `true` |
207+
| infos.schedule_snapshot | Value of `--schedule_snapshot`/`MEILI_SCHEDULE_SNAPSHOT` if scheduled snapshots are enabled, otherwise `None` | `86400` |
212208
| infos.snapshot_dir | `true` if `--snapshot-dir`/`MEILI_SNAPSHOT_DIR` is specified to true, otherwise `false` | `true` |
213-
| infos.snapshot_interval_sec | Value of `--snapshot-interval-sec`/`MEILI_SNAPSHOT_INTERVAL_SEC` in seconds | `86400` |
214209
| infos.ignore_missing_snapshot | `true` if `--ignore-missing-snapshot` is specified to true, otherwise `false` | `true` |
215210
| infos.ignore_snapshot_if_db_exists | `true` if `--ignore-snapshot-if-db-exists` is specified to true, otherwise `false` | `true` |
216211
| infos.http_addr | `true` if `--http-addr`/`MEILI_HTTP_ADDR` is specified, otherwise `false` | `true`|
217-
| infos.max_index_size | Value of `--max-index-size`/`MEILI_INDEX_SIZE` in bytes | `336042103` |
218-
| infos.max_task_db_size | Value of `--max-task-db-size`/`MEILI_MAX_TASK_DB_SIZE` in bytes | `336042103` |
219212
| infos.http_payload_size_limit | Value of `--http-payload-size-limit`/`MEILI_HTTP_PAYLOAD_SIZE_LIMIT` in bytes | `336042103` |
220-
| infos.disable_auto_batching | `true` if `--disable-auto-batching`/`MEILI_DISABLE_AUTO_BATCHING` is specified to true, otherwise `false` | `true` |
221213
| infos.log_level | Value of `--log-level`/`MEILI_LOG_LEVEL` | `debug` |
222214
| infos.max_indexing_memory | Value of `--max-indexing-memory`/`MEILI_MAX_INDEXING_MEMORY` in bytes | `336042103` |
223215
| infos.max_indexing_threads | Value of `--max-indexing-threads`/`MEILI_MAX_INDEXING_THREADS` in integer | `4` |

text/0059-geo-search.md

Lines changed: 7 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ csv format example
117117
}
118118
```
119119

120-
- 🔴 Giving a bad formed `_geo` that do not conform to the format causes the `update` payload to fail. A new `invalid_geo_field` error is given in the `update` object.
120+
- 🔴 Giving a bad formed `_geo` that do not conform to the format causes the `task` payload to fail and returns an [invalid_document_geo_field](0061-error-format-and-definitions.md#invalid_document_geo_field) error.
121121

122122
---
123123

@@ -148,10 +148,8 @@ csv format example
148148
}
149149
```
150150

151-
- 🔴 Specifying parameters that do not conform to the `_geoRadius` signature causes the API to return an `invalid_filter` error. The error message should indicate how `_geoRadius` should be used. See `_geoRadius` built-in filter rule definition part.
152-
- 🔴 Using `_geoDistance` in a filter expression causes the API to return an `invalid_filter` error. `message` should be `:reservedKeyword is a reserved keyword and thus can't be used as a filter expression.`
153-
- 🔴 Using `_geo` in a filter expression causes the API to return an `invalid_filter` error. `message` should be `:reservedKeyword is a reserved keyword and thus can't be used as a filter expression. Use the _geoRadius(latitude, longitude, distance) built-in rule to filter on _geo field coordinates.`
154-
- 🔴 Using `_geoPoint` in a filter expression causes the API to return an `invalid_filter` error. `message` should be `:reservedKeyword is a reserved keyword and thus can't be used as a filter expression. Use the _geoRadius(latitude, longitude, distance) built-in rule to filter on _geo field coordinates.`
151+
- 🔴 Specifying parameters that do not conform to the `_geoRadius` signature causes the API to return an [invalid_search_parameter_filter](0061-error-format-and-definitions.md#invalid_search_parameter_filter) error.
152+
- 🔴 Using `_geoDistance`, `_geo` or `_geoPoint` in a filter expression causes the API to return an [invalid_search_parameter_filter](0061-error-format-and-definitions.md#invalid_search_parameter_filter) error.
155153

156154
---
157155

@@ -185,10 +183,8 @@ Following the [`sort` specification feature](https://github.com/meilisearch/spec
185183
"sort": "_geoPoint({lat, lng}):asc,price:desc"
186184
}
187185
```
188-
- 🔴 Specifying parameters that do not conform to the `_geoPoint` signature causes the API to return an `invalid_sort` error. The error message should indicate how `_geoPoint` should be used. See `_geoPoint` built-in sort rule definition part.
189-
- 🔴 Using `_geoDistance` in a sort expression causes the API to return an `invalid_sort` error. `message` should be `:reservedKeyword is a reserved keyword and thus can't be used as a sort expression.`
190-
- 🔴 Using `_geo` in a sort expression causes the API to return an `invalid_sort` error. `message` should be `:reservedKeyword is a reserved keyword and thus can't be used as a sort expression. Use the _geoPoint(latitude, longitude) built-in rule to sort on _geo field coordinates.`
191-
- 🔴 Using `_geoRadius` in a sort expression causes the API to return an `invalid_sort` error. `message` should be `:reservedKeyword is a reserved keyword and thus can't be used as a sort expression. Use the _geoPoint(latitude, longitude) built-in rule to sort on _geo field coordinates.`
186+
- 🔴 Specifying parameters that do not conform to the `_geoPoint` signature causes the API to return an [invalid_search_parameter_sort](0061-error-format-and-definitions.md#invalid_search_parameter_sort) error.
187+
- 🔴 Using `_geoDistance`, `_geo` or `_geoRadius` in a sort expression causes the API to return an[invalid_search_parameter_sort](0061-error-format-and-definitions.md#invalid_search_parameter_sort) error.
192188

193189
---
194190

@@ -207,29 +203,10 @@ Following the [`sort` specification feature](https://github.com/meilisearch/spec
207203
208204
---
209205

210-
### `invalid_criterion` error changes
206+
#### Related Ranking Rules Settings API Errors
211207

212-
The error is currently marked as an internal error thus the name is not explicit and consistent with the term `Ranking Rule` a user can encounter in the documentation and in the API resource name. A new definition of this error is proposed.
208+
- 🔴 Specifying a custom ranking rule with `_geo`, `_geoDistance`, `_geoPoint`, or `_geoRadius` returns an [invalid_settings_ranking_rules](0061-error-format-and-definitions.md#invalid_settings_ranking_rules) error.
213209

214-
#### invalid_ranking_rule
215-
216-
#### Context
217-
218-
This error is raised asynchronously when the user tries to specify an invalid ranking rule in the ranking rules setting.
219-
220-
#### Error Definition
221-
222-
```json
223-
"message": ":rankingRule ranking rule is invalid. Valid ranking rules are words, typo, sort, proximity, attribute, exactness and custom ranking rules."
224-
"code": "invalid_ranking_rule"
225-
"type": "invalid_request"
226-
"link": "https://docs.meilisearch.com/errors#invalid_ranking_rule"
227-
```
228-
229-
- 🔴 Specifying an invalid ranking rule name raises an `invalid_ranking_rule` error. See `message` defined in the error definition part.
230-
- 🔴 Specifying a custom ranking rule with `_geo` or `_geoDistance` raises an `invalid_ranking_rule` error. The message is `:reservedKeyword is a reserved keyword and thus can't be used as a ranking rule.`.
231-
- 🔴 Specifying a custom ranking rule with `_geoPoint` raises an `invalid_ranking_rule` error. The message is `_geoPoint is a reserved keyword and thus can't be used as a ranking rule. _geoPoint can only be used for sorting at search time`.
232-
- 🔴 Specifying a custom ranking rule with `_geoRadius` raises an `invalid_ranking_rule` error. The message is `_geoRadius is a reserved keyword and thus can't be used as a ranking rule. _geoRadius can only be used for filtering at search time`.
233210
---
234211

235212
### IV. Finalized Key Changes

0 commit comments

Comments
 (0)