Meilisearch 1.8
Meilisearch 1.8 帶來負關鍵字搜尋、搜尋穩定性和 AI 搜尋的改進,包括新的嵌入器。

Meilisearch 1.8 也已在 Meilisearch Cloud 上提供——立即升級!
新增:負向搜尋
Meilisearch 1.8 允許您使用 -
運算符從搜尋結果中排除特定字詞。
例如,若要尋找包含「room」但未包含「escape」的檔案,請在「escape」之前加上 -
curl -X POST 'https://edge.meilisearch.com/indexes/places/search' -H 'Content-Type: application/json' --data-binary '{ "q": "-escape room" }'
實驗性:改良的混合搜尋
AI 搜尋是一項實驗性功能。請在此 GitHub 討論中提供您的意見。
新增 Ollama 嵌入器
Meilisearch 1.8 導入對 Ollama 模型支援。在您的索引設定中設定嵌入器
"default": { "source": "ollama", // 👈 Use the ollama source "url": "https://127.0.0.1:11434/api/embeddings", // ☝️ optional, fetched from MEILI_OLLAMA_URL environment variable if missing "apiKey": "<your-api-key>", // ☝️ optional "model": "nomic-embed-text", "documentTemplate": "{{doc.field_name}}" // like for openAI and huggingFace sources }
新增 REST 嵌入器
從 Meilisearch 1.8 開始,您可以使用透過 REST API 存取的任何嵌入器。以下說明如何使用 rest
來源設定 OpenAI 嵌入器
{ "source": "rest", "apiKey": "<your-openai-api-key>", "dimensions": 1536, "url": "https://api.openai.com/v1/embeddings", "query": { "model": "text-embedding-ada-002" }, "inputField": ["input"], "inputType": "textArray", "pathToEmbeddings": ["data"], "embeddingObject": ["embedding"] }
如需 API 和可用參數的更多詳細資訊,請參閱關於 REST 嵌入器的文件。
新的嵌入器設定:分佈偏移
這是適用於自訂模型的高階 API。OpenAI 和 Hugging Face 模型不需要此設定。
視嵌入模型而定,向量嵌入並非總是均勻分佈在向量空間中。當向量過度叢集時,語意搜尋分數的排名可能會非常接近。由於語意分數緊密集中,混合結果可能具有次佳的相關性。
為了解決此問題,您現在可以使用仿射變換來偏移結果的分佈。此變換會正規化語意分數,以防止它們過度叢集或過於緊密,使它們更可以與關鍵字分數比較。
"default": { "source": "huggingFace", "model": "MODEL_NAME", "distribution": { // describes the natural distribution of results "mean": 0.7, // mean value "sigma": 0.3 // standard deviation } }
- 平均值代表您觀察到語意搜尋分數密集聚集的中心點。在提供的程式碼範例中,設定表示此模型的語意分數往往聚集在 0.7 的平均值附近。
- sigma 值決定排名分數與平均值之間的離散程度(標準差)。上述程式碼範例中提供的 sigma 表示,在偏移分佈之前,結果往往與平均值有 0.3 的平均距離。
這使得語意和關鍵字搜尋結果之間的 _rankingScore
比較更有效,從而改善結果排名。
重大變更:修剪的 API 回應
為了加快搜尋回應速度並減少頻寬使用量,Meilisearch v1.8 不再在搜尋回應中傳回以下欄位
- 傳回查詢向量的
vector
欄位 - 當您將 `”showRankingScoreDetails”: true”` 新增至搜尋查詢時,包含在
vectorSort
物件中的value
欄位 _semanticScore
欄位;其值與_rankingScore
相同,您應改用後者。在搜尋參數中設定”showRankingScore”: true”
搜尋穩定性改進
新的搜尋截止設定
為了提升穩定性和效能,Meilisearch 會自動終止任何超過 1500 毫秒的搜尋請求。
若要調整此逾時閾值,您可以自訂 searchCutoffMs
設定
curl -X PATCH 'https://edge.meilisearch.com/indexes/movies/settings' -H 'Content-Type: application/json' --data-binary '{ "searchCutoffMs": 150 }'
實驗性:並行搜尋請求限制
此版本導入了對並行搜尋請求的限制,以防止 Meilisearch 使用過多的 RAM 並崩潰。預設的佇列限制設定為 1000 個請求。
若要修改此限制,請使用 --experimental-search-queue-size
選項重新啟動您的自行託管執行個體
./meilisearch --experimental-search-queue-size 100
👉 此限制不會影響搜尋效能。它僅控制可同時排入佇列的搜尋請求數量,以增強系統安全性。
請在此 GitHub 討論中提供關於並行搜尋請求限制的意見。
貢獻者致謝
我們非常感謝所有參與此版本的社群成員。我們想要感謝:@availhang、@hack3ric、@jakobklemm、@mohsen-alizadeh、@redistay、@rohankmr414、@shuangcui、@Toromyx、@6543 對 Meilisearch 的協助,以及 @Gusted、@mosuka、@6543 在 Charabia 的工作。
特別感謝我們的 SDK 維護者,感謝他們讓 Meilisearch 可以使用這麼多種語言。 🫶
這就是 v1.8 的總結!此版本貼文重點介紹最重要的更新。如需詳盡清單,請閱讀 Github 上的更新記錄。
若要隨時掌握 Meilisearch 的所有動態,請訂閱我們的電子報。若要深入瞭解 Meilisearch 的未來並協助塑造它,請查看我們的路線圖並參與我們的產品討論。
如有任何其他問題,請加入我們在 Discord 上的開發人員社群。