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

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

v1.2 版本的新功能有哪些?

Meilisearch 1.2 版本為篩選器帶來了新功能,並全面改進了引擎。

Laurent Cazanove
Laurent CazanoveDX 工程師 & 文案@StriftCodes
What's new in v1.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 EMPTYIS NULL 篩選器運算子

此版本為篩選器帶來了新功能。因此,我們思考著,如何才能更進一步?也許如果我們可以透過更多方式進行篩選。我的意思是,您不想要在篩選時加入更多篩選嗎?

因此,我們引入了兩個新的篩選器運算子:IS EMPTYIS NULLIS EMPTY 會比對具有空白值的現有屬性,而 IS NULL 會比對具有 Null 值的欄位。

以下是考量以下文件的範例

[
  {
    "id": 0,
    "color": []
  },
  {
    "id": 1,
    "color": null
  },
  {
    "id": 2,
  }
]

新的篩選器運算子如下運作

  • color IS EMPTY:比對文件 0
  • color IS NULL:比對文件 1

請注意,IS EMPTYIS 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 處理排名規則的方式,以改善搜尋一致性和延遲
  • 地理搜尋排序現在對於遞減和遞增排序都具有更高的效能
  • 由於charabia 更新,增強了對拉丁語系和阿拉伯語的語言支援

結論

以上是 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

期待在那裡與您相見。

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 日