Use AI-powered search with user-provided embeddings experimental
This guide shows how to perform AI-powered searches with user-generated embeddings instead of relying on a third-party tool.
Requirements
- A Meilisearch project with AI-powered search activated
Configure a custom embedder
Configure the embedder
index setting, settings its source to userProvided
:
curl \
-X PATCH 'http://localhost:7700/indexes/movies/settings' \
-H 'Content-Type: application/json' \
--data-binary '{
"embedders": {
"image2text": {
"source": "userProvided",
"dimensions": 3
}
}
}'
Add documents to Meilisearch
Next, use the /documents
endpoint to upload vectorized documents. Place vector data in your documents' _vectors
field:
curl -X POST -H 'content-type: application/json' \
'localhost:7700/indexes/products/documents' \
--data-binary '[
{ "id": 0, "_vectors": {"image2text": [0, 0.8, -0.2]}, "text": "frying pan" },
{ "id": 1, "_vectors": {"image2text": [1, -0.2, 0]}, "text": "baking dish" }
]'
Vector search with user-provided embeddings
When using a custom embedder, you must vectorize both your documents and user queries.
Once you have the query's vector, pass it to the vector
search parameter to perform an AI-powered search:
curl -X POST -H 'content-type: application/json' \
'localhost:7700/indexes/products/search' \
--data-binary '{ "vector": [0, 1, 2] }'
vector
must be an array of numbers indicating the search vector. You must generate these yourself when using vector search with user-provided embeddings.
vector
can be used together with other search parameters, including filter
and sort
:
curl -X POST -H 'content-type: application/json' \
'localhost:7700/indexes/products/search' \
--data-binary '{
"vector": [0, 1, 2],
"filter": "price < 10",
"sort": ["price:asc"]
}'