Requirements
Jina AI provides a range of embedding models with strong multilingual support and competitive pricing. This guide shows you how to configure Meilisearch with Jina embeddings using the REST embedder.
Requirements
- A Meilisearch project
- A Jina AI account with an API key
Available models
| Model | Dimensions | Notes |
|---|---|---|
jina-embeddings-v4 |
128, 256, 512, 1,024, or 2,048 | Multimodal (text, images, PDFs), 32K context, multilingual |
jina-embeddings-v5-text-small |
1,024 | Text-only, balanced quality and speed |
jina-embeddings-v5-text-nano |
768 | Smallest and fastest v5 model |
jina-embeddings-v3 |
1,024 | Previous generation, well-tested |
jina-colbert-v2 |
128 | Multi-vector model for fine-grained matching |
For new projects, jina-embeddings-v4 is the recommended choice with its multimodal support and flexible dimensions. If you only need text embeddings, the v5-text models offer a lighter alternative. See the Jina models page for details.
Configure the embedder
Standard embedding models
Use this configuration for jina-embeddings-v5-text-small, jina-embeddings-v5-text-nano, or jina-embeddings-v3:
{
"jina": {
"source": "rest",
"apiKey": "<JINA_API_KEY>",
"dimensions": 1024,
"documentTemplate": "A product named '{{doc.name}}': {{doc.description}}",
"url": "https://api.jina.ai/v1/embeddings",
"request": {
"model": "jina-embeddings-v5-text-small",
"input": ["{{text}}", "{{..}}"]
},
"response": {
"data": [
{ "embedding": "{{embedding}}" },
"{{..}}"
]
}
}
}
Adjust model and dimensions to match the model you choose (1024 for v5-text-small and v3, 768 for v5-text-nano).
ColBERT multi-vector model
jina-colbert-v2 uses a different API endpoint and response format:
{
"jina-colbert": {
"source": "rest",
"apiKey": "<JINA_API_KEY>",
"dimensions": 128,
"documentTemplate": "A product named '{{doc.name}}': {{doc.description}}",
"url": "https://api.jina.ai/v1/multi-vector",
"request": {
"model": "jina-colbert-v2",
"input_type": "document",
"embedding_type": "float",
"input": ["{{text}}", "{{..}}"]
},
"response": {
"data": [
{ "embeddings": ["{{embedding}}"] },
"{{..}}"
]
}
}
}
Send the configuration
curl \
-X PATCH 'MEILISEARCH_URL/indexes/INDEX_NAME/settings' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer MEILISEARCH_KEY' \
--data-binary '{
"embedders": {
"jina": {
"source": "rest",
"apiKey": "<JINA_API_KEY>",
"dimensions": 1024,
"documentTemplate": "A product named '\''{{doc.name}}'\'': {{doc.description}}",
"url": "https://api.jina.ai/v1/embeddings",
"request": {
"model": "jina-embeddings-v5-text-small",
"input": ["{{text}}", "{{..}}"]
},
"response": {
"data": [
{ "embedding": "{{embedding}}" },
"{{..}}"
]
}
}
}
}'
Replace <JINA_API_KEY> with your actual Jina API key.
Meilisearch handles batching and rate limiting automatically. Monitor the tasks queue to track indexing progress.
Test the search
{
"q": "comfortable shoes for walking",
"hybrid": {
"semanticRatio": 0.5,
"embedder": "jina"
}
}
Next steps
- Document template best practices to optimize which fields are embedded
- Custom hybrid ranking to tune the balance between keyword and semantic results
- Embedder settings reference for all configuration options
