日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

分區Partition

理解Partition

向量檢索服務DashVector的Collection具有分區(Partition)的能力,同一個Collection下的Doc可通過不同的Partition進行物理和邏輯上的分區。各種Doc操作(如插入Doc檢索Doc等)若指定Partition,則該操作將限定在該指定的Paritition內進行。通過合理的Partition設置,可有效提升Doc操作的效率。

  • 同一個Collection下,可以創建若干個Partition,具體限制見約束與限制

  • 每個Partition通過唯一的名稱進行標識,同一個Collection下的Partition名稱不可重復;

  • 同一個Collection下的所有Partition,具有相同的Schema,如向量維度、向量數據類型、度量方式、Fields定義等;

  • 每個Collection默認自帶一個無法刪除的Partition,當各種Doc操作(如插入Doc檢索Doc等)不指定Partition時,等價于使用該默認Partition;

  • Partition需通過API調用顯示的創建和刪除。

Partition使用場景舉例

在Collection中使用Partition能顯著提高Query的性能,但并非所有場景都建議使用。當數據量較小時,使用Partition收益不明顯。當數據量較大、但沒有合適的劃分字段時,同樣不建議使用Partition。例如,如果沒有合適的劃分字段但又設置了多個Partition時,檢索時可能需要跨多個Partition進行多次Query,檢索性能將低于單個Partition的一次Query。

下面列舉幾個典型的適合Partition場景供參考。

電商圖搜場景

例如某跨境電商用戶,有2000w服裝商品圖片,需要實現以圖搜圖業務場景。商品有固定多個分類(鞋子,裙子,褲子等),商品提特征后按類別入庫,每個分類對應一個Partition,查詢時用戶顯示指定類別或用戶不指定由分類模型確定類別。

image.png

視頻監控場景

例如某視頻監控廠商,需要對一工業園區的1000個攝像頭采集的視頻進行抽幀,識別提取車輛特征后,導入DashVector向量庫用于后續搜索,生成車輛軌跡等業務場景,但數據只需保留30天,按日期每天創建Partition,并定期刪除過期的Partition。

image.png

商標侵權檢測

例如某商標代理商收集了一個5000w規模的商標數據庫,需要快速查詢相似商標判定是否侵權。按結構分為文本商標、圖形商標、數字商標、字母商標等9個分類,每個分類數據入庫DashVector時對應一個Partition。查詢時指定Partition,只從特定類別中查詢。

多語言問答系統

某電商國際化知識庫團隊,需要根據用戶所使用的語言類別來查詢對應語言的相似問題,比如要支持中文、英文、法文三種語言。在知識庫內容經過Embedding后,分別導入Chinese、English、French三個Partition中,查詢時,根據用戶所使用的語言類別選擇對應的Partition進行查詢。

多租戶

Partition也可用來支持多租戶場景。例如某電商服務商為其下小微電商提供以圖搜圖能力,可在一個Collection中創建多個Partition對應多個客戶,實現了數據的物理隔離、保證安全的同時,又節約了成本。

Partition使用示例

前提條件

代碼示例

說明

需要使用您的api-key替換示例中的 YOUR_API_KEY、您的Cluster Endpoint替換示例中的YOUR_CLUSTER_ENDPOINT,代碼才能正常運行。

import dashvector

# 創建Client
client = dashvector.Client(
    api_key='YOUR_API_KEY',
    endpoint='YOUR_CLUSTER_ENDPOINT'
)
assert client

# 創建Collection
client.create(name='understand_partition', dimension=4)
collection = client.get('understand_partition')
assert collection


# 創建Partition,Partition名稱為shoes
collection.create_partition(name='shoes')

# 描述Partition
ret = collection.describe_partition('shoes')
print(ret)

# 查看Partition列表
partitions = collection.list_partitions()
print(partitions)

# 插入Doc至Partition
collection.insert(
  ('1', [0.1,0.1,0.1,0.1]), partition='shoes'
)

# 向量相似性檢索時指定Partition
docs = collection.query(
  vector=[0.1, 0.1, 0.2, 0.1],
  partition='shoes'
)
print(docs)

# 從指定Partition中刪除Doc
collection.delete(ids=['1'], partition='shoes')

# 查看Partition統計數據
ret = collection.stats_partition('shoes')
print(ret)

# 刪除Partition
collection.delete_partition('shoes')