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: learn/resources/experimental_features_overview.mdx
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -54,3 +54,4 @@ Activating or deactivating experimental features this way does not require you t
54
54
|[Edit documents with function](/reference/api/documents#update-documents-with-function)| Use a RHAI function to edit documents directly in the Meilisearch database | API route |
55
55
|[`/network` route](/reference/api/network)| Enable `/network` route | API route |
56
56
|[Dumpless upgrade](/learn/self_hosted/configure_meilisearch_at_launch#dumpless-upgrade)| Upgrade Meilisearch without generating a dump | API route |
57
+
|[Composite embedders](/reference/api/settings#composite-embedders)| Enable composite embedders | API route |
|**`source`**| String | Empty | The third-party tool that will generate embeddings from documents. Must be `openAi`, `huggingFace`, `ollama`, `rest`, or `userProvided`|
2429
-
|**`url`**| String |`http://localhost:11434/api/embeddings`| The URL Meilisearch contacts when querying the embedder |
2430
-
|**`apiKey`**| String | Empty | Authentication token Meilisearch should send with each request to the embedder. If not present, Meilisearch will attempt to read it from environment variables |
2431
-
|**`model`**| String | Empty | The model your embedder uses when generating vectors |
2432
-
|**`documentTemplate`**| String |`{% for field in fields %} {% if field.is_searchable and not field.value == nil %}{{ field.name }}: {{ field.value }} {% endif %} {% endfor %}`| Template defining the data Meilisearch sends to the embedder |
2433
-
|**`documentTemplateMaxBytes`**| Integer |`400`| Maximum allowed size of rendered document template |
2434
-
|**`dimensions`**| Integer | Empty | Number of dimensions in the chosen model. If not supplied, Meilisearch tries to infer this value |
2435
-
|**`revision`**| String | Empty | Model revision hash |
2436
-
|**`distribution`**| Object | Empty | Describes the natural distribution of search results. Must contain two fields, `mean` and `sigma`, each containing a numeric value between `0` and `1`|
2437
-
|**`request`**| Object | Empty | A JSON value representing the request Meilisearch makes to the remote embedder |
2438
-
|**`response`**| Object | Empty | A JSON value representing the request Meilisearch expects from the remote embedder |
2439
-
|**`binaryQuantized`**| Boolean | Empty | Once set to `true`, irreversibly converts all vector dimensions to 1-bit values |
|**`source`**| String | Empty | The third-party tool that will generate embeddings from documents. Must be `openAi`, `huggingFace`, `ollama`, `rest`, or `userProvided`|
2429
+
|**`url`**| String |`http://localhost:11434/api/embeddings`| The URL Meilisearch contacts when querying the embedder |
2430
+
|**`apiKey`**| String | Empty | Authentication token Meilisearch should send with each request to the embedder. If not present, Meilisearch will attempt to read it from environment variables |
2431
+
|**`model`**| String | Empty | The model your embedder uses when generating vectors |
2432
+
|**`documentTemplate`**| String |`{% for field in fields %} {% if field.is_searchable and not field.value == nil %}{{ field.name }}: {{ field.value }} {% endif %} {% endfor %}`| Template defining the data Meilisearch sends to the embedder |
2433
+
|**`documentTemplateMaxBytes`**| Integer |`400`| Maximum allowed size of rendered document template |
2434
+
|**`dimensions`**| Integer | Empty | Number of dimensions in the chosen model. If not supplied, Meilisearch tries to infer this value |
2435
+
|**`revision`**| String | Empty | Model revision hash |
2436
+
|**`distribution`**| Object | Empty | Describes the natural distribution of search results. Must contain two fields, `mean` and `sigma`, each containing a numeric value between `0` and `1`|
2437
+
|**`request`**| Object | Empty | A JSON value representing the request Meilisearch makes to the remote embedder |
2438
+
|**`response`**| Object | Empty | A JSON value representing the request Meilisearch expects from the remote embedder |
2439
+
|**`binaryQuantized`**| Boolean | Empty | Once set to `true`, irreversibly converts all vector dimensions to 1-bit values |
2440
+
|**`indexingEmbedder`**| Object | Empty | Configures embedder to vectorize documents during indexing |
Additionally, use `rest`to auto-generate embeddings with any embedder offering a REST API.
2526
+
`rest`is a generic source compatible with any embeddings provider offering a REST API.
2519
2527
2520
-
You may also configure a `userProvided` embedder. In this case, you must manually include vector data in your documents' `_vectors` field. You must also manually generate vectors for search queries.
2528
+
Use `userProvided` when you want to generate embeddings manually. In this case, you must include vector data in your documents' `_vectors` field. You must also generate vectors for search queries.
Choose `composite` to use one embedder during indexing time, and another embedder at search time. Must be used together with [`indexingEmbedder` and `searchEmbedder`](#indexingembedder-and-searchembedder).
Meilisearch queries `url` to generate vector embeddings for queries and documents. `url` must point to a REST-compatible embedder. You may also use `url` to work with proxies, such as when targeting `openAi` from behind a proxy.
@@ -2586,7 +2611,6 @@ This field is incompatible with `userProvided` embedders.
2586
2611
2587
2612
This field is optional for all other embedders.
2588
2613
2589
-
2590
2614
##### `dimensions`
2591
2615
2592
2616
Number of dimensions in the chosen model. If not supplied, Meilisearch tries to infer this value.
@@ -2738,6 +2762,26 @@ This option can be useful when working with large Meilisearch projects. Consider
2738
2762
**Activating `binaryQuantized` 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.
2739
2763
</Capsule>
2740
2764
2765
+
##### `indexingEmbedder` and `searchEmbedder` <NoticeTagtype="experimental"label="experimental" />
2766
+
2767
+
When using a [composite embedder](#composite-embedders), configure separate embedders Meilisearch should use when vectorizing documents and search queries.
2768
+
2769
+
`indexingEmbedder` often benefits from the higher bandwidth and speed of remote providers so it can vectorize large batches of documents quickly. `searchEmbedder` may often benefits from the lower latency of processing queries locally.
2770
+
2771
+
Both fields must be an object and accept the same fields as a regular embedder, with the following exceptions:
2772
+
2773
+
-`indexingEmbedder` and `searchEmbedder` must use the same model for generating embeddings
2774
+
-`indexingEmbedder` and `searchEmbedder` must have identical `dimension`s and `pooling` methods
2775
+
-`source` is mandatory for both `indexingEmbedder` and `searchEmbedder`
2776
+
- Neither sub-embedder can set `source` to `composite` or `userProvided`
2777
+
- Neither `binaryQuantized` and `distribution` are valid sub-embedder fields and must always be declared in the main embedder
2778
+
-`documentTemplate` and `documentTemplateMaxBytes` are invalid fields for `searchEmbedder`
2779
+
-`documentTemplate` and `documentTemplateMaxBytes` are mandatory for `indexingEmbedder`, if applicable to its source
2780
+
2781
+
`indexingEmbedder` and `searchEmbedder` are mandatory when using the `composite` source.
2782
+
2783
+
`indexingEmbedder` and `searchEmbedder` are incompatible with all other embedder sources.
0 commit comments