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

前往首頁Meilisearch 的標誌
返回文章
2023 年 4 月 3 日

v1.1 版本的新功能

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

Carolina Ferreira
Carolina FerreiraMeilisearch 的開發者倡導者@CarolainFG
What’s new in 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_recordsmedical_equipement 索引
  • 您可以使用新增或更新文件新增或取代文件端點的 csvDelimiter 參數,覆寫預設 CSV 分隔符號(單個逗號 (,))
  • 交錯的文件新增和刪除任務現在會自動批次處理在一起,加快索引建立過程
  • 我們出色的社群已協助我們加強對希臘語和阿拉伯語的支援
  • 語言偵測現在會在建立索引時發生,減少搜尋期間錯誤的語言識別,從而提高相關性

我們非常感謝所有參與此版本的社群成員。我們要感謝:@akhildevelops@AymanHamdoun@cymruu@FrancisMurillo @GregoryConrad@gregsadetsky@james-2001@MixusMinimax@waveywaves@ztkmkoo,感謝他們對Meilisearch 的協助。

我們也想特別向 @choznerol@cymruu@james-2001 表示感謝,感謝他們在 Charabia 上的工作。

這就是 v1.1 的全部內容!請記得查看變更日誌,以取得完整的版本資訊。如果您有任何問題或想隨時掌握最新資訊,可以加入我們的 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 年第四季版本回顧

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

Maya Shin
Maya Shin2024年11月27日
Meilisearch 1.11

Meilisearch 1.11

Meilisearch 1.11 通過關鍵改進(包括二進制量化),推進了 AI 驅動搜尋朝向穩定化。此版本還根據使用者回饋增強了聯合搜尋功能。

Carolina Ferreira
Carolina Ferreira2024年10月29日