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

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

Meilisearch 1.9

Meilisearch 1.9 帶來了相似文件、排名分數閾值、依屬性分組以及改進的 AI 搜尋。

Laurent Cazanove
Laurent Cazanove開發體驗工程師 & 文案@StriftCodes
Meilisearch 1.9

我們很高興推出 Meilisearch v1.9。在本文中,我們將回顧最具影響力的變更。如需詳盡列表,請查看 GitHub 上的變更日誌

Meilisearch 1.9 也已在 Meilisearch Cloud 上提供 - 立即升級!

新增功能:排名分數閾值

Meilisearch 1.9 允許排除排名分數較低的搜尋結果。當使用新的 rankingScoreThreshold 選項時,Meilisearch 將不會傳回任何低於定義閾值的文件。

curl 
 -X POST 'https://127.0.0.1:7700/indexes/movies/search' 
 -H 'Content-Type: application/json' 
 --data-binary '{
    "q": "green ogre living in a swamp",
    "hybrid": { 
	    "semanticRatio": 0.9, 
	    "embedder": "default" 
	},
    "showRankingScore": true,
    "limit": 5,
    "rankingScoreThreshold": 0.2
 }'

在實作混合搜尋時使用排名分數閾值,可以移除不相關的結果,並讓您的搜尋分析正確收集無搜尋結果指標。

排除的結果不會計入 estimatedTotalHitstotalHits 或 facet 分佈。

新增功能:搜尋時的 distinct 屬性(依分組)

Meilisearch 1.9 新增了在搜尋時定義distinct 屬性的功能。當使用新的 distinct 搜尋參數時,Meilisearch 將僅傳回一個具有指定屬性值的文件。

此功能常用於電子商務應用程式。考量一個包含相同產品多個變體的 products 索引,例如共享相同 product_idBlue iPhone 15Red iPhone 15 文件。下面的 API 呼叫將傳回單一 iPhone 15

curl 
 -X POST 'https://127.0.0.1:7700/indexes/products/search' 
 -H 'Content-Type: application/json' 
 --data-binary '{
    "q": "iphone",
    "distinct": "product_id"
 }'

當提供 distinct 時,Meilisearch 會忽略索引的distinct 屬性

新增功能:frequency 比對策略

Meilisearch 1.9 引入了一個新的比對策略,以優先顯示包含最不常用查詢詞的結果。當使用 frequency 比對策略時,Meilisearch 會降低非常常見的字的優先順序。

讓我們以 "the little prince" 查詢為例。在我們的索引文件中,"the""little" 這兩個字可能出現了很多次。因此,比對策略會優先處理包含 "prince" 的文件。

實驗性功能:新的相似文件 API

Meilisearch 1.9 引入了一個新的由 AI 驅動的搜尋功能,允許搜尋與現有文件相似的文件。

以下 API 呼叫會在電影索引中搜尋與主鍵23 的文件相似的文件

curl 
  -X POST /indexes/movies/similar
  -H 'Content-Type: application/json' 
  --data-binary '{
    "id": "23",
    "embedder": "default",
  }'

請查看相似文件 API,以取得有關其他參數的更多資訊。

實驗性功能:避免重新產生嵌入

當匯入使用 Meilisearch 1.9 或更高版本建立的dump時,Meilisearch 將不會重新產生嵌入。這將避免在升級 Meilisearch 資料庫時進行不必要的計算。

新增功能:regenerate 參數

此外,Meilisearch 1.9 引入了一個新的 API,以更精細地控制文件嵌入產生。具體來說,它可以在每次更新文件時產生嵌入。

文件 _vectors 物件現在除了陣列之外,還接受物件。提供的物件接受一個 regenerate 布林值和一個可選的 embeddings 陣列。

考量以下具有使用者提供嵌入的範例文件

{
	"id": 42,
	"_vectors": {
		// Embeddings for the `default` embedder
		// Equivalent to `regenerate: true`
		"default": [0.1, 0.2 ],
		// Embeddings for the `text` embedder
		"text": {
			"embeddings": [[0.1, 0.2, 0.3], [0.4, 0.5, 0.6]],
			// Never regenerate embeddings
			"regenerate": false
		},
		"translation": {
			"embeddings": [0.1, 0.2, 0.3, 0.4],
			// Regenerate embeddings when document is updated
			"regenerate": true
		}
	}
}

雖然一般來說,您可能希望在每次更新文件時重新產生嵌入,但這有助於從使用者提供的嵌入遷移到讓 Meilisearch 處理嵌入,而不會產生不必要的成本。

實驗性功能:混合搜尋的重大變更

隨著我們朝向穩定由 AI 驅動的搜尋功能邁進,我們引入了次要的重大變更,以使 API 更不容易出錯。

重大變更:空的 embeddings 陣列

在使用者回饋表示先前的行為出乎意料且沒有幫助之後,現在提供空的 embeddings 陣列將會告訴 Meilisearch 該文件沒有嵌入。

在 Meilisearch 1.9 之前,空的 embeddings 陣列會被解釋為維度為 0 的單一嵌入。

重大變更:已移除搜尋結果中的 _vectors

從 Meilisearch 1.9 開始,對向量搜尋和混合搜尋請求的 API 回應將不會在回應中包含 _vectors

但是,如果您希望 API 回應包含它們,您現在可以使用新的 retrieveVectors 搜尋參數

curl 
  -X POST 'https://127.0.0.1:7700/indexes/movies/search' 
  -H 'Content-Type: application/json' 
  --data-binary '{
    "q": "star wars",
    "retrieveVectors": true
  }'

重大變更:最佳化使用者提供的 embeddings

從 Meilisearch 1.9 開始,向量嵌入將不再按原樣儲存。數字將被轉換為標準化的浮點數表示法,以節省儲存空間並最佳化效能。簡而言之,向量 [3] 可能會儲存為 [3.0]

貢獻者感謝

感謝所有參與此版本發佈的社群成員。特別感謝 @gh2k@writegr@yudrywetMeilisearch 的貢獻,以及 @mosuka@Soham1803@tkhshtsh0917Charabia 的貢獻。

當然,也非常感謝我們的 SDK 維護人員,感謝他們讓 Meilisearch 可以在多種語言中使用。特別感謝 @the-sinner@norkunas。🫶


這就是 v1.9 的總結!此版本文章重點介紹了最重要的更新。如需詳盡列表,請閱讀 Github 上的變更日誌

訂閱我們的每月電子報,隨時掌握 Meilisearch 的一切動態。若要進一步了解 Meilisearch 的未來並協助塑造它,請查看我們的藍圖並參與我們的產品討論

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

Meilisearch 1.12

Meilisearch 1.12

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

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

Meilisearch 2024 年第四季版本總結

Meilisearch 第四季版本包含更快的搜尋速度、對 UI 中設定的更多控制權以及新區域。

Maya Shin
Maya Shin2024 年 11 月 27 日
Meilisearch 1.11

Meilisearch 1.11

Meilisearch 1.11 透過重要改進(包括二進位量化)推動由 AI 驅動的搜尋走向穩定。此版本也根據使用者回饋增強了聯合搜尋功能。

Carolina Ferreira
Carolina Ferreira2024 年 10 月 29 日