v0.21 版本的新功能
看看 MeiliSearch v0.21 中一些最大的變更

今天標誌著 Meilisearch v0.21 的發佈,這是我們自 2021 年 3 月以來的第一個新版本。正如您可能預料的那樣,這個版本對我們的搜尋引擎進行了許多大大小小的更改。您可以查看我們詳盡的變更日誌,其中概述了所有重大變更並在此處下載二進制檔案,但在這篇文章中,我們想仔細看看一些最重要的更新。
搜尋效能
首先,我們能給您最好的消息之一:v0.21 是目前為止速度最快的 Meilisearch 版本。有多快?我們使用 1GB 數據集和 1.15 億個文檔進行的測試表明,複雜查詢返回結果的速度比 v0.20 快了十倍;篩選這些結果(以前是一個緩慢的操作)最多需要 50 毫秒。
重構
Clémentine 已經寫了關於我們為什麼選擇重構核心引擎基本部分的文章,但如果您錯過了:我們越來越難以保持程式碼易於外部貢獻者閱讀,並且難以在不對效能產生負面影響的情況下新增新功能。
我們對這些月份的成就感到非常自豪,不僅是因為我們設法大幅提高了 Meilisearch 的效能,還因為我們知道我們的搜尋引擎擁有一個新的、堅如磐石的基礎。
分面和篩選器
v0.21 中一些最大的可見(和重大)變更與分面和篩選器有關。
首先,搜尋參數 filters
和 facetFilters
已被 filter
取代。這個新參數允許您根據文件屬性(其值為數字或字串)來精簡搜尋結果。
$ curl 'https://127.0.0.1:7700/indexes/movies/search' --data '{ "q": "thriller", "filter": ["genres = Horror", "genres = Mystery"]}'
在此範例中,我們建立一個篩選器,僅返回分類為恐怖片和懸疑片的電影。
若要使用具有 filter
搜尋參數的屬性,您必須先將其新增至新的 filterableAttributes
索引設定。filterableAttributes
的工作方式與 attributesForFaceting
索引設定完全相同,並取代了後者。
$ curl -X POST 'https://127.0.0.1:7700/indexes/movies/settings' --data '{ "filterableAttributes": [ "director", "genres" ] }'
Meilisearch 不再區分分面和篩選器:您可以使用新的 filter
搜尋參數和 filterableAttributes
索引設定來建立分面搜尋介面。
片語搜尋
Meilisearch v0.21 支援片語搜尋。如果您將一個或多個搜尋詞彙放在雙引號中(例如,「非裔美國詩人」
或 「John Waters」
),Meilisearch 將只會傳回包含這些詞彙且順序與撰寫順序完全一致的文件。片語搜尋是讓查詢更精確的好方法,當您知道您的搜尋應該只取得一個結果時(例如,使用 ISBN 編號搜尋書籍時),片語搜尋會很方便。
$ curl 'https://127.0.0.1:7700/indexes/movies/search' --data '{ "q": ""John" Waters" }'
網頁介面
如果您不知道,當您在開發模式下啟動執行個體時,Meilisearch 會自動建立一個網頁介面,以便您可以立即測試我們的搜尋引擎。我們已更新此介面,使其更易於使用(而且看起來更美觀)!
新的遙測頁面和更簡單的分析設定
依預設,Meilisearch 使用我們的搜尋引擎從所有執行個體收集匿名資料。我們已讓停用此行為更容易,並在我們的文件中新增了一個新頁面,詳細說明了我們收集的資料以及我們如何使用它。隱私對我們來說是一個重要的問題,因此請隨時分享您可能有的任何評論、疑慮或建議。
$ ./meilisearch --no-analytics=true
反白顯示陣列和物件欄位中的相符項
Meilisearch v0.20 允許您反白顯示字串欄位中符合的搜尋詞彙,以便使用者可以看到在文件中找到詞彙的確切位置。在 v0.21 中,我們已擴展此功能以適用於字串陣列和巢狀物件。和以前一樣,您可以在每個傳回文件的 _formatted
物件內找到反白顯示的相符項。
$ curl 'https://127.0.0.1:7700/indexes/movies/search' --data '{ "q": "adventure", "attributesToHighlight": ["title", "genres"] }'
{ "id": "50393", "title": "The Adventures of Huck Finn", "overview": "Climb aboard for an extraordinary version of Mark Twain's sweeping adventure when Walt Disney presents The Adventures of Huck Finn, starring Elijah Wood.", "release_date": 733712400, "genres": ["Adventure","Family"] "_formatted": { "id": "50393", "title": "The <em>Adventures</em> of Huck Finn", "overview": "Climb aboard for an extraordinary version of Mark Twain's sweeping adventure when Walt Disney presents The Adventures of Huck Finn, starring Elijah Wood.", "release_date": 733712400, "genres": ["<em>Adventure</em>","Family"] } }
標題和類型反白顯示的相符項可在 _formatted
內找到。
其他變更
- 您可能會注意到索引器中的效能略有改善:這是一項正在進行的工作,我們渴望收到您對此的意見回饋
wordsPosition
排名規則已合併到attribute
中max-mdb-size
已重新命名為[max-index-size](https://docs.meilisearch.com/reference/features/configuration.html#max-index-size)
- 現在可以使用人類可讀取的單位(例如
Kb
或Gb
)來指定[max-index-size](https://docs.meilisearch.com/reference/features/configuration.html#max-index-size)
和[http-payload-limit-size](https://docs.meilisearch.com/reference/features/configuration.html#payload-limit-size)
- 我們已移除每個執行個體 200 個索引的限制
錯誤修復
貢獻者
這一切很大程度上歸功於我們的社群:我們衷心感謝您的慷慨。Meilisearch 因為您而成為更好的搜尋引擎。
我們要特別感謝 @sanders41 和 @bb:您的錯誤報告和意見回饋非常有幫助!
最後,非常感謝 @shekhirin 在新的搜尋引擎實作方面提供的所有協助。
這個版本大致如此!若要全面了解所有變更(包括重大和其他變更),您可以查看我們的變更日誌。