v1.2 版本的新功能有哪些?
Meilisearch 1.2 版本為篩選器帶來了新功能,並全面改進了引擎。

我們很高興宣布 Meilisearch v1.2 的發布。這個次要版本包含篩選器的新功能,以及全面改進的引擎。讓我們深入了解最值得注意的變更!
新功能:透過篩選器增強文件管理
我們很高興透過引入用於提取和刪除文件的篩選器,來改善 Meilisearch 開發人員的體驗。🥳
如同篩選器的一貫作風,文件欄位必須先設定為可篩選的屬性。
擷取文件
篩選器為擷取文件帶來了新功能。例如,我們可以先檢查有多少文件符合某些篩選器,然後再執行刪除操作。
因此,我們引入了一個新的端點來擷取文件
**POST** /indexes/{indexUid}/documents/fetch
讓我們考慮一個包含電影的索引。我們將編寫一個請求,以擷取 10 部屬於恐怖或懸疑類型的電影。使用陣列語法,我們可以在請求主體中將篩選器表示如下
{ "filter": [ "genre = Horror", "genre = Mystery" ], "limit": 10 }
這個新的端點可以省去您為了探索資料而發出搜尋請求的麻煩。如需更多有關使用篩選器擷取文件的資訊,請參閱專門的文件。
刪除文件
您現在可以刪除符合篩選器清單的文件。此功能具有專用的端點
**POST** /indexes/{indexUid}/documents/delete
以包含電影的索引為例,讓我們編寫一個請求來刪除所有恐怖或喜劇電影,以及由詹姆斯·卡麥隆執導的電影。可以使用以下請求主體來表示
{ "filter": [ [ "genre = Horror", "genre = Comedy" ], "director = "James Cameron"" ] }
此請求會啟動一個任務來刪除相符的文件。Meilisearch 將會以摘要式任務物件回應
{ "taskUid": 42, "indexUid": "movies", "status": "enqueued", "type": "documentDeletion", "enqueuedAt": "2023-06-05T11:01:58.721841Z" }
此任務代表非同步刪除操作。別忘了檢查任務狀態,以確保在繼續操作之前已刪除文件。如需更多有關刪除文件的資訊,請參閱專門的文件。
新功能:IS EMPTY
和 IS NULL
篩選器運算子
此版本為篩選器帶來了新功能。因此,我們思考著,如何才能更進一步?也許如果我們可以透過更多方式進行篩選。我的意思是,您不想要在篩選時加入更多篩選嗎?
因此,我們引入了兩個新的篩選器運算子:IS EMPTY
和 IS NULL
。IS EMPTY
會比對具有空白值的現有屬性,而 IS NULL
會比對具有 Null 值的欄位。
以下是考量以下文件的範例
[ { "id": 0, "color": [] }, { "id": 1, "color": null }, { "id": 2, } ]
新的篩選器運算子如下運作
color IS EMPTY
:比對文件0
color IS NULL
:比對文件1
請注意,IS EMPTY
和 IS NULL
都不會比對遺失 color
欄位的文件。這兩個運算子也可以與 NOT
一起使用。如需更多資訊,請參閱相關文件。
實驗性功能:減少記憶體用量
我們引入了一個新的實驗性標誌,以減少 Meilisearch 的 RAM 用量。請使用 --experimental-reduce-indexing-memory-usage
CLI 標誌或 MEILI_EXPERIMENTAL_REDUCE_INDEXING_MEMORY_USAGE
環境變數來啟動 Meilisearch,以試用此功能。
您可以在此Github 討論中提供意見反應。
改進:關聯性
我們增強了錯字容忍度。分割的字詞現在會被視為錯字,這表示 whit ehorse
現在可能會比對包含 white horse
的文件。但是,n-gram 和分割字詞現在的排名將會較低。這表示 sun flower
現在將會先傳回包含 Sun Flower
的文件,然後才會傳回包含 Sunflower
的文件。
改進:自動化任務刪除
Meilisearch 會非同步處理將文件新增至索引等操作。這表示這些操作不會立即處理。相反地,Meilisearch 會將它們放置在任務佇列中,並依照接收順序處理它們。從 v1.2 開始,任務佇列的最大容量為 100 萬。
一旦佇列已滿,Meilisearch 會嘗試刪除最舊的 100,000 個任務。Meilisearch 不會移除未完成(已排入佇列或正在處理)的任務。它只會在最舊的 100,000 個任務中,盡可能刪除已完成的任務。
當任務的自動刪除失敗時,Meilisearch 會發出具有 `warning_`_ 等級的記錄。
其他變更
結論
以上是 Meilisearch v1.2 中最大的變更。如需詳盡的檢閱,包括安全性更新和錯誤修正,請參閱變更記錄。
我們已在準備 Meilisearch 的 1.3 版本。我們已經有三個原型可供您試用:搜尋 facet 值、排序 facet 值,以及CONTAINS、STARTS WITH 和 ENDS WITH 篩選器運算子。我們渴望收到您的意見反應,以完成最後的潤飾。
此版本的發布若沒有@cymruu、@GregoryConrad、@inductor、@jirutka、@jlucktay、@roy9495 和 @Sufflope 對於 meilisearch 的貢獻,是不可能實現的。這也包括 @akeamc、@DrAliRagab、@goodhoko 和 @mosuka 對於 charabia 最新版本的貢獻,以持續改進語言支援。非常感謝我們出色的貢獻者。🫶
您可以訂閱我們的電子報,以隨時掌握最新動態。若要深入了解 Meilisearch 的未來發展並協助塑造其方向,請查看我們的路線圖,並參與我們的產品討論。
加入/r/rust上的討論。
如有任何其他問題,請加入我們的開發者社群Discord。
期待在那裡與您相見。