v1.1 版本的新功能
準備好迎接我們的最新版本,其中包含眾所期待的多索引搜尋和其他令人興奮的新功能!

讓我們來看看 Meilisearch 最新更新中的一些重大變更。我們將在本篇文章中概述主要變更,但您也可以在 GitHub 上查看完整變更日誌。
新功能:多重搜尋 API 端點
透過引入 /multi-search
API 端點,Meilisearch 允許您使用單個 HTTP 請求傳送多個搜尋查詢。這將允許您完成許多不同的事情,例如聯合搜尋和多選篩選!
聯合搜尋
假設您有兩個不同的資料集:「品牌」和「產品」。如果您可以同時搜尋這兩者,同時將它們分別保留在各自的索引中,那不是很方便嗎?您可以透過查詢多個索引來執行聯合搜尋,也稱為多索引搜尋
curl -X POST 'https://127.0.0.1:7700/multi-search' -H 'Content-Type: application/json' --data-binary '{ "queries": [ { "indexUid": "products", "q": "Nike", "limit": 1 }, { "indexUid": "brands", "q": "Nike", "limit": 1 } ] }'
回應是一個 results
陣列,其中包含每個查詢索引的一個物件
{ "results": [ { "indexUid": "products", "hits": […], "query": "Nike", "processingTimeMs": 1, "limit": 1, "offset": 0, "estimatedTotalHits": 17 }, { "indexUid": "brands", "hits": […], "query": "Nike", "processingTimeMs": 0, "limit": 1, "offset": 0, "estimatedTotalHits": 7 } ] }
多選篩選
在分面搜尋介面中實作多選篩選行為時,多重搜尋請求 API 特別有用。
多選篩選(也稱為分離篩選)允許使用者同時查看符合多個條件的項目。此類介面也會顯示每個選項可用的項目數,即使這些項目尚未被選取。這允許快速有效地瀏覽符合使用者特定條件的項目,最終節省時間和精力。
由於多選篩選根據包含性的 OR
邏輯運作,因此計算它們需要向 Meilisearch 傳送多個查詢。分別傳送這些查詢可能會導致效能降低,並可能導致更高的託管服務成本。
使用 /multi-search
端點,您可以在單個請求中向同一個索引傳送多個查詢,從而優化效能並降低託管成本。
在 v1.1 之前,使用 Instant Meilisearch 達成分離篩選行為是可行的,但需要向 API 發出多個請求。由於 Instant Meilisearch 現在使用 /multi-search
端點,因此不再需要此變通方法。
請查看我們的文件,以了解有關多重搜尋請求和分面搜尋的詳細資訊。
新功能:_geoBoundingBox
邊界框是一個完全封閉區域的矩形框。使用新的 _geoBoundingBox
篩選表達式,您可以搜尋包含在矩形地理區域內的結果。
它採用兩個參數,對應於所需區域的右上角(東北)和左下角(西南)的座標:_geoBoundingBox([lat, lng], [lat, lng])
curl -X POST 'https://127.0.0.1:7700/indexes/restaurants/search' -H 'Content-type:application/json' --data-binary '{ "filter": "_geoBoundingBox([45.472735, 9.184019],[45.473711, 9.185613] )" }'
請查看我們關於基於地理座標篩選結果的指南。
新功能:引入 facetStats
當在搜尋查詢中使用 facets
參數時,搜尋結果物件現在將包含一個 facetStats
物件,該物件提供每個數值分面的最小值和最大值。任何沒有數值的分面都將被省略。
假設您有一個產品索引,假設您想知道最高和最低價格來實作範圍滑桿元件
curl -X POST 'https://127.0.0.1:7700/indexes/products/search' -H 'Content-Type: application/json' --data-binary '{ "facets": ["price"] }'
您將獲得以下回應,其中包含所有必要資訊,可隨時使用
{ "hits": […], "facetDistribution": { "price": {…} }, "facetStats": { "price": { "min": 1.99, "max": 1898.28 } } }
實驗性功能:使用 Prometheus 進行系統監控
此版本引入了一個新的 /metrics
端點,該端點提供與Prometheus(一個開源系統監控和警報工具包)相容的資料。此實驗性端點提供對 Meilisearch 行為和效能的寶貴見解。
若要啟用它,請在啟動 Meilisearch 時使用 --experimental-enable-metrics
旗標。
您是否打算使用此功能?請在GitHub 討論中告訴我們您的體驗。
改進:移除索引大小和數量的限制
Meilisearch 已解除每個執行個體索引的數量和大小的限制,因此您可以根據需要建立任意數量的索引 🥳
現在唯一的限制是作業系統分配給單一程序的記憶體位址空間。請在文件中閱讀有關此方面的詳細資訊。
其他改進
- 現在,您可以在管理 API 金鑰和租戶權杖時,在索引名稱的末尾使用萬用字元 (
*
)。例如,"medical*"
將符合medical_records
和medical_equipement
索引 - 您可以使用新增或更新文件或新增或取代文件端點的
csvDelimiter
參數,覆寫預設 CSV 分隔符號(單個逗號 (,
)) - 交錯的文件新增和刪除任務現在會自動批次處理在一起,加快索引建立過程
- 我們出色的社群已協助我們加強對希臘語和阿拉伯語的支援
- 語言偵測現在會在建立索引時發生,減少搜尋期間錯誤的語言識別,從而提高相關性
我們非常感謝所有參與此版本的社群成員。我們要感謝:@akhildevelops、@AymanHamdoun、@cymruu、@FrancisMurillo @GregoryConrad、@gregsadetsky、@james-2001、@MixusMinimax、@waveywaves 和 @ztkmkoo,感謝他們對Meilisearch 的協助。
我們也想特別向 @choznerol、@cymruu 和 @james-2001 表示感謝,感謝他們在 Charabia 上的工作。
這就是 v1.1 的全部內容!請記得查看變更日誌,以取得完整的版本資訊。如果您有任何問題或想隨時掌握最新資訊,可以加入我們的 Discord 或訂閱我們的電子報。您也可以查看我們的藍圖,並參與我們的產品討論,以協助我們改進。