You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: guides/docker.mdx
+8-8Lines changed: 8 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,7 +14,7 @@ Docker is a tool that bundles applications into containers. Docker containers en
14
14
Docker containers are distributed in images. To use Meilisearch, use the `docker pull` command to download a Meilisearch image:
15
15
16
16
```sh
17
-
docker pull getmeili/meilisearch:v1.10
17
+
docker pull getmeili/meilisearch:v1.11
18
18
```
19
19
20
20
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.
@@ -31,7 +31,7 @@ After completing the previous step, use `docker run` to launch the Meilisearch i
31
31
docker run -it --rm \
32
32
-p 7700:7700 \
33
33
-v $(pwd)/meili_data:/meili_data \
34
-
getmeili/meilisearch:v1.10
34
+
getmeili/meilisearch:v1.11
35
35
```
36
36
37
37
### Configure Meilisearch
@@ -47,7 +47,7 @@ docker run -it --rm \
47
47
-p 7700:7700 \
48
48
-e MEILI_MASTER_KEY='MASTER_KEY'\
49
49
-v $(pwd)/meili_data:/meili_data \
50
-
getmeili/meilisearch:v1.10
50
+
getmeili/meilisearch:v1.11
51
51
```
52
52
53
53
#### Passing instance options with CLI arguments
@@ -58,7 +58,7 @@ If you want to pass command-line arguments to Meilisearch with Docker, you must
58
58
docker run -it --rm \
59
59
-p 7700:7700 \
60
60
-v $(pwd)/meili_data:/meili_data \
61
-
getmeili/meilisearch:v1.10 \
61
+
getmeili/meilisearch:v1.11 \
62
62
meilisearch --master-key="MASTER_KEY"
63
63
```
64
64
@@ -76,7 +76,7 @@ To keep your data intact between reboots, specify a dedicated volume by running
76
76
docker run -it --rm \
77
77
-p 7700:7700 \
78
78
-v $(pwd)/meili_data:/meili_data \
79
-
getmeili/meilisearch:v1.10
79
+
getmeili/meilisearch:v1.11
80
80
```
81
81
82
82
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.
@@ -91,7 +91,7 @@ To import a dump, use Meilisearch's `--import-dump` command-line option and spec
Copy file name to clipboardExpand all lines: learn/ai_powered_search/getting_started_with_ai_search.mdx
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -50,15 +50,15 @@ curl \
50
50
51
51
Next, you must generate vector embeddings for all documents in your dataset. Embeddings are mathematical representations of the meanings of words and sentences in your documents. Meilisearch relies on external providers to generate these embeddings. Use OpenAI for this tutorial.
52
52
53
-
Use the `embedders` index setting of the [update `/settings` endpoint](/reference/api/settings?utm_campaign=vector-search&utm_source=docs&utm_medium=vector-search-guide) to configure a default[OpenAI](https://platform.openai.com/) embedder:
53
+
Use the `embedders` index setting of the [update `/settings` endpoint](/reference/api/settings?utm_campaign=vector-search&utm_source=docs&utm_medium=vector-search-guide) to configure an[OpenAI](https://platform.openai.com/) embedder:
Copy file name to clipboardExpand all lines: learn/filtering_and_sorting/filter_expression_reference.mdx
+35-1Lines changed: 35 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -161,7 +161,7 @@ NOT genres IN [horror, comedy]
161
161
162
162
`CONTAINS` filters results containing partial matches to the specified string pattern, similar to a [SQL `LIKE`](https://dev.mysql.com/doc/refman/8.4/en/string-comparison-functions.html#operator_like).
163
163
164
-
The following expression returns all dairy products whose name start with `"kef"`, such as kefir:
164
+
The following expression returns all dairy products whose names contain `"kef"`:
165
165
166
166
```
167
167
dairy_products.name CONTAINS kef
@@ -185,6 +185,40 @@ curl \
185
185
"containsFilter": true
186
186
}'
187
187
```
188
+
189
+
This will also enable the [`STARTS WITH`](#starts-with) operator.
Copy file name to clipboardExpand all lines: learn/indexing/indexing_best_practices.mdx
+10Lines changed: 10 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -60,3 +60,13 @@ If you have followed the previous tips in this guide and are still experiencing
60
60
Indexing is a memory-intensive and multi-threaded operation. The more memory and processor cores available, the faster Meilisearch will index new documents. When trying to improve indexing speed, using a machine with more processor cores is more effective than increasing RAM.
61
61
62
62
Due to how Meilisearch works, it is best to avoid HDDs (Hard Disk Drives) as they can easily become performance bottlenecks.
63
+
64
+
## Enable binary quantization when using AI-powered search
65
+
66
+
If you are experiencing performance issues when indexing documents for AI-powered search, consider enabling [binary quantization](/reference/api/settings#binaryquantized) for your embedders. Binary quantization compresses vectors by representing each dimension with 1-bit values. This reduces the relevancy of semantic search results, but greatly improves performance.
67
+
68
+
Binary quantization works best with large datasets containing more than 1M documents and using models with more than 1400 dimensions.
69
+
70
+
<Capsuleintent="danger"title="Binary quantization is an irreversible process">
71
+
**Activating binary quantization is irreversible.** Once enabled, Meilisearch converts all vectors and discards all vector data that does fit within 1-bit. The only way to recover the vectors' original values is to re-vectorize the whole index in a new embedder.
|**[`offset`](/reference/api/search#offset)**| Integer |`0`| Number of documents to skip |
36
36
|**[`limit`](/reference/api/search#limit)**| Integer |`20`| Maximum number of documents returned |
37
+
|**[`facetsByIndex`](#facetsbyindex)**| Object of arrays |`null`| Display facet information for the specified indexes |
38
+
|**[`mergeFacets`](#mergefacets)**| Object |`null`| Display facet information for the specified indexes |
37
39
38
40
If `federation` is missing or `null`, Meilisearch returns a list of multiple search result objects, with each item from the list corresponding to a search query in the request.
39
41
42
+
##### `facetsByIndex`
43
+
44
+
`facetsByIndex` must be an object. Its keys must correspond to indexes in your Meilisearch project. Each key must be associated with an array of attributes in the filterable attributes list of that index:
45
+
46
+
```json
47
+
"facetsByIndex": {
48
+
"INDEX_A": ["ATTRIBUTE_X", "ATTRIBUTE_Y"],
49
+
"INDEX_B": ["ATTRIBUTE_Z"]
50
+
}
51
+
```
52
+
53
+
When you specify `facetsByIndex`, multi-search responses include an extra `facetsByIndex` field. The response's `facetsByIndex` is an object with one field for each queried index:
54
+
55
+
```json
56
+
{
57
+
"hits" [ … ],
58
+
…
59
+
"facetsByIndex": {
60
+
"INDEX_A": {
61
+
"distribution": {
62
+
"ATTRIBUTE_X": {
63
+
"KEY": <Integer>,
64
+
"KEY": <Integer>,
65
+
…
66
+
},
67
+
"ATTRIBUTE_Y": {
68
+
"KEY": <Integer>,
69
+
…
70
+
}
71
+
},
72
+
"stats": {
73
+
"KEY": {
74
+
"min": <Integer>,
75
+
"max": <Integer>
76
+
}
77
+
}
78
+
},
79
+
"INDEX_B": {
80
+
…
81
+
}
82
+
}
83
+
}
84
+
```
85
+
86
+
##### `mergeFacets`
87
+
88
+
`mergeFacets` must be an object and may contain the following fields:
89
+
90
+
-`maxValuesPerFacet`: must be an integer. When specified, indicates the maximum number of returned values for a single facet. Defaults to the value assigned to [the `maxValuesPerFacet` index setting](/reference/api/settings#faceting)
91
+
92
+
When both `facetsByIndex` and `mergeFacets` are present and not null, facet information included in multi-search responses is merged across all queried indexes. Instead of `facetsByIndex`, the response includes two extra fields: `facetDistribution` and `facetStats`:
93
+
94
+
```json
95
+
{
96
+
"hits": [ … ],
97
+
…
98
+
"facetFederation": {
99
+
"ATTRIBUTE": {
100
+
"VALUE": <Integer>,
101
+
"VALUE": <Integer>
102
+
}
103
+
},
104
+
"facetStats": {
105
+
"ATTRIBUTE": {
106
+
"min": <Integer>,
107
+
"max": <Integer>
108
+
}
109
+
}
110
+
}
111
+
```
112
+
40
113
##### Merge algorithm for federated searches
41
114
42
115
Federated search's merged results are returned in decreasing ranking score. To obtain the final list of results, Meilisearch compares with the following procedure:
Copy file name to clipboardExpand all lines: reference/api/search.mdx
+8-3Lines changed: 8 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1181,7 +1181,7 @@ Configures Meilisearch to return search results based on a query's meaning and c
1181
1181
1182
1182
`hybrid` must be an object. It accepts two fields: `embedder` and `semanticRatio`.
1183
1183
1184
-
`embedder` must be a string indicating an embedder configured with the `/settings` endpoint. If you don't specify an embedder and your index contains a single embedder, Meilisearch uses it by default. If an index contains multiple embedders, Meilisearch will use the embedder named `default`.
1184
+
`embedder` must be a string indicating an embedder configured with the `/settings` endpoint. It is mandatory to specify a valid embedder when performing AI-powered searches.
1185
1185
1186
1186
`semanticRatio` must be a number between `0.0` and `1.0` indicating the proportion between keyword and semantic search results. `0.0` causes Meilisearch to only return keyword results. `1.0` causes Meilisearch to only return meaning-based results. Defaults to `0.5`.
1187
1187
@@ -1205,6 +1205,12 @@ Use a custom vector to perform a search query. Must be an array of numbers corre
1205
1205
1206
1206
`vector` dimensions must match the dimensions of the embedder.
1207
1207
1208
+
<Capsuleintent="note">
1209
+
If a query does not specify `q`, but contains both `vector` and `hybrid.semanticRatio` bigger than `0`, Meilisearch performs a pure semantic search.
1210
+
1211
+
If `q` is missing and `semanticRatio` is explicitly set to `0`, Meilisearch performs a placeholder search without any vector search results.
0 commit comments