AI 驅動的混合搜尋功能正在封閉測試中。 加入候補名單 以搶先體驗!

前往首頁Meilisearch 的標誌
返回文章
2024 年 5 月 7 日

Meilisearch 1.8

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

Carolina Ferreira
Carolina Ferreira開發人員倡導者 @ Meilisearch@CarolainFG
Meilisearch 1.8

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@6543Charabia 的工作。

特別感謝我們的 SDK 維護者,感謝他們讓 Meilisearch 可以使用這麼多種語言。 🫶


這就是 v1.8 的總結!此版本貼文重點介紹最重要的更新。如需詳盡清單,請閱讀 Github 上的更新記錄

若要隨時掌握 Meilisearch 的所有動態,請訂閱我們的電子報。若要深入瞭解 Meilisearch 的未來並協助塑造它,請查看我們的路線圖並參與我們的產品討論

如有任何其他問題,請加入我們在 Discord 上的開發人員社群。

Meilisearch 1.12

Meilisearch 1.12

Meilisearch 1.12 顯著提升了索引建立速度,並導入了新的 API 來停用前綴搜尋和分面搜尋,以及擷取任務批次。

Laurent Cazanove
Laurent Cazanove2024 年 12 月 23 日
Meilisearch Q4 2024 release wrap-up

Meilisearch 2024 年第 4 季發布總結

Meilisearch 第 4 季發布包括更快的搜尋速度、在 UI 中對設定進行更多控制以及新的區域。

Maya Shin
Maya Shin2024 年 11 月 27 日
Meilisearch 1.11

Meilisearch 1.11

Meilisearch 1.11 透過關鍵改進(包括二元量化)將 AI 驅動的搜尋朝向穩定化邁進。此版本也根據使用者回饋加強了聯邦搜尋功能。

Carolina Ferreira
Carolina Ferreira2024 年 10 月 29 日