Create a project on Meilisearch Cloud, provision an index, and note the host URL and API key from the project settings; use the master key for admin operations and create scoped tenant tokens for client-side read-only search.
Enable vector search on the index by sending PATCH /indexes/{uid}/settings with { "embedders": { "default": { "source": "openAi", "apiKey": "YOUR_OPENAI_KEY", "model": "text-embedding-3-small", "documentTemplate": "{{doc.title}} {{doc.description}}" } } }; Meilisearch will auto-generate vectors at index time.
Index products with a POST /indexes/{uid}/documents bulk request; each document is embedded automatically using the documentTemplate expression.
Manage synonyms via PUT /indexes/{uid}/settings/synonyms with a JSON object mapping synonym terms (e.g., { "sneaker": ["trainer", "running shoe"] }); synonyms are bidirectional by default.
Test semantic search by sending a search request with the hybrid parameter (e.g., { "q": "casual footwear", "hybrid": { "semanticRatio": 0.7, "embedder": "default" } }) and compare result quality against keyword-only search.
Known gotchas
Enabling the embedder on an existing index triggers re-indexing of all documents to generate vectors; this is compute-intensive and time-consuming for large catalogs — schedule during a maintenance window.
The documentTemplate for embeddings must be kept concise; overly long templates increase embedding API cost and can produce lower-quality vectors if the model context window is saturated.
Meilisearch synonyms are applied at query time and are not visible in the index; adding synonyms does not change stored documents but will alter which documents match future queries — test carefully to avoid unintended broad matching.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp