🚀 免費嘗試 Zilliz Cloud,完全托管的 Milvus,體驗速度提升 10 倍!立即嘗試

milvus-logo
LFAI
主頁
  • 使用者指南
  • Home
  • Docs
  • 使用者指南

  • 搜尋與重新排名

  • 過濾

  • JSON 運算符號

JSON 運算符號

Milvus 支援先進的運算符號,用於查詢和過濾 JSON 欄位,使其成為管理複雜、結構化數據的完美工具。這些運算符能夠高效地查詢 JSON 文檔,允許您根據 JSON 欄位中的特定元素、值或條件檢索實體。本節將引導您在 Milvus 中使用 JSON 特定的運算符號,並提供實例來說明它們的功能。

JSON 欄位無法處理複雜的嵌套結構,並將所有嵌套結構視為純字串。因此,在使用 JSON 欄位時,建議避免過深的巢狀結構,並確保您的資料結構盡可能扁平,以獲得最佳效能。

可用的 JSON 運算符

Milvus 提供了幾個強大的 JSON 運算符,幫助過濾和查詢 JSON 資料,這些運算符有

讓我們以範例來探討這些運算符號,看看它們如何應用在實際情況中。

JSON_CONTAINS

json_contains 運算符檢查 JSON 欄位中是否存在特定元素或子陣列。當您想要確保 JSON 陣列或物件包含特定值時,這個運算符很有用。

範例

假設您有一個產品集合,每個產品都有一個tags 欄位,其中包含一個字串的 JSON 陣列,例如["electronics", "sale", "new"] 。您想要篩選具有標籤"sale" 的產品。

# JSON data: {"tags": ["electronics", "sale", "new"]}
filter = 'json_contains(tags, "sale")'

在這個範例中,Milvus 會返回所有tags 欄位包含"sale" 元素的產品。

json_contains_all

json_contains_all 運算子確保指定 JSON 表達式的所有元素都出現在目標欄位中。當您需要匹配 JSON 陣列中的多個值時,它特別有用。

範例

繼續使用產品標籤的情境,如果您想找出所有標籤為"electronics","sale", 和"new" 的產品,您可以使用json_contains_all 運算符號。

# JSON data: {"tags": ["electronics", "sale", "new", "discount"]}
filter = 'json_contains_all(tags, ["electronics", "sale", "new"])'

此查詢將返回tags 陣列包含所有三個指定元素的所有產品:"electronics","sale", 和"new"

json_cotains_any

json_contains_any 運算符號會過濾至少有一個 JSON 表達式成員存在於欄位中的實體。當您要根據多個可能值中的任何一個來匹配實體時,這非常有用。

範例

假設您想要過濾至少有一個標記"electronics","sale", 或"new" 的產品。您可以使用json_contains_any 運算符號來達成這個目的。

# JSON data: {"tags": ["electronics", "sale", "new"]}
filter = 'json_contains_any(tags, ["electronics", "new", "clearance"])'

在這種情況下,Milvus 會返回清單["electronics", "new", "clearance"] 中至少有一個標籤的所有產品。即使產品只有其中一個標籤,也會包含在結果中。

免費嘗試托管的 Milvus

Zilliz Cloud 無縫接入,由 Milvus 提供動力,速度提升 10 倍。

開始使用
反饋

這個頁面有幫助嗎?