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

檢索Doc

更新時(shí)間:

本文介紹如何通過Python SDK在Collection中進(jìn)行相似性檢索。

前提條件

接口定義

Collection.query(
    vector: Optional[Union[List[Union[int, float]], np.ndarray, VectorQuery, Dict[str, VectorQuery]]] = None,   
    id: Optional[str] = None,
    topk: int = 10,
    filter: Optional[str] = None,
    include_vector: bool = False,
    partition: Optional[str] = None,
    output_fields: Optional[List[str]] = None,
    sparse_vector: Optional[Dict[int, float]] = None,
    rerank: Optional[BaseRanker] = None,
    async_req: False
) -> DashVectorResponse

使用示例

說明
  1. 需要使用您的api-key替換示例中的YOUR_API_KEY、您的Cluster Endpoint替換示例中的YOUR_CLUSTER_ENDPOINT,代碼才能正常運(yùn)行。

  2. 本示例需要參考新建Collection-使用示例提前創(chuàng)建好名稱為quickstart的Collection,并參考插入Doc提前插入部分?jǐn)?shù)據(jù)。

import dashvector
import numpy as np

client = dashvector.Client(
    api_key='YOUR_API_KEY',
    endpoint='YOUR_CLUSTER_ENDPOINT'
)
collection = client.get(name='quickstart')

根據(jù)向量進(jìn)行相似性檢索

ret = collection.query(
    vector=[0.1, 0.2, 0.3, 0.4]
)
# 判斷query接口是否成功
if ret:
    print('query success')
    print(len(ret))
    for doc in ret:
        print(doc)
        print(doc.id)
        print(doc.vector)
        print(doc.fields)

ret = collection.query(
    vector=[0.1, 0.2, 0.3, 0.4],
    topk=100,
    output_fields=['name', 'age'], # 僅返回name、age這2個(gè)Field
    include_vector=True
)

根據(jù)主鍵(對(duì)應(yīng)的向量)進(jìn)行相似性檢索

ret = collection.query(
    id='1'
)
# 判斷query接口是否成功
if ret:
    print('query success')
    print(len(ret))
    for doc in ret:
        print(doc)
        print(doc.id)
        print(doc.vector)
        print(doc.fields)

ret = collection.query(
    id='1',
    topk=100,
    output_fields=['name', 'age'], # 僅返回name、age這2個(gè)Field
    include_vector=True
)

帶過濾條件的相似性檢索

# 根據(jù)向量或者主鍵進(jìn)行相似性檢索 + 條件過濾
ret = collection.query(
    vector=[0.1, 0.2, 0.3, 0.4],   # 向量檢索,也可設(shè)置主鍵檢索
    topk=100,
    filter='age > 18',             # 條件過濾,僅對(duì)age > 18的Doc進(jìn)行相似性檢索
    output_fields=['name', 'age'], # 僅返回name、age這2個(gè)Field
    include_vector=True
)

帶有Sparse Vector的向量檢索

說明

Sparse Vector(稀疏向量)可用于關(guān)鍵詞權(quán)重表示,實(shí)現(xiàn)帶關(guān)鍵詞感知能力的向量檢索。

# 根據(jù)向量進(jìn)行相似性檢索 + 稀疏向量
ret = collection.query(
    vector=[0.1, 0.2, 0.3, 0.4],   # 向量檢索
    sparse_vector={1: 0.3, 20: 0.7}
)

通過過濾條件進(jìn)行匹配查詢

# 支持向量和主鍵都不傳入,那么只進(jìn)行條件過濾
ret = collection.query(
    topk=100,
    filter='age > 18',             # 條件過濾,僅對(duì)age > 18的Doc進(jìn)行匹配查詢
    output_fields=['name', 'age'], # 僅返回name、age這2個(gè)Field
    include_vector=True
)

向量檢索高級(jí)參數(shù)

說明

詳情可參考 向量檢索高級(jí)參數(shù)。

ret = collection.query(vector=VectorQuery(vector=[0.1,0.2,0.3,0.4], is_linear=False, ef=1000, radius=0.53))

多向量檢索

說明

詳情可參考 多向量檢索

RrfRanker 示例

title_vector = [0.1, 0.2, 0.3, 0.4]
content_vector = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6]
vectors = {
    "title": VectorQuery(vector=title_vector, num_candidates=10),
    "content": VectorQuery(vector=content_vector),
}
ret = collection.query(
    vector=vectors,
    include_vector=False,
    rerank=RrfRanker(rank_constant=100),
)
assert ret
print(ret.output)

WeightedRanker 示例

title_vector = [0.1, 0.2, 0.3, 0.4]
content_vector = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6]
vectors = {
    "title": VectorQuery(vector=title_vector, num_candidates=10),
    "content": VectorQuery(vector=content_vector),
}
ret = collection.query(
    vector=vectors,
    include_vector=False,
    rerank=WeightedRanker(weights={"title": 1.0, "content": 1.0}),
)
assert ret
print(ret.output)

使用多向量的一個(gè)向量執(zhí)行檢索

title_vector = [0.1, 0.2, 0.3, 0.4]
ret = collection.query(vector={"title": VectorQuery(vector=title_vector, is_linear=False, ef=1000, radius=0.53)})

入?yún)⒚枋?/b>

說明

vectorid兩個(gè)入?yún)⑿枰x一使用,如都不傳入,則僅完成條件過濾。

參數(shù)

類型

默認(rèn)值

說明

vector(可選)

Optional[Union[List[Union[int, float]], np.ndarray, VectorQuery, Dict[str, VectorQuery]]]

None

一個(gè)或多個(gè)向量數(shù)據(jù),或者使用VectorQuery執(zhí)行高級(jí)檢索,詳情參考向量檢索高級(jí)參數(shù)

id(可選)

Optional[str]

None

主鍵,表示根據(jù)主鍵對(duì)應(yīng)的向量進(jìn)行相似性檢索

topk(可選)

int

10

返回topk相似性結(jié)果

filter(可選)

Optional[str]

None

過濾條件,需滿足SQL where子句規(guī)范,詳見條件過濾檢索

include_vector(可選)

bool

False

是否返回向量數(shù)據(jù)

partition(可選)

Optional[str]

None

Partition名稱

output_fields(可選)

Optional[List[str]]

None

默認(rèn)返回所有Fields

sparse_vector(可選)

Optional[Dict[int, float]]

None

稀疏向量

rerank

Optional[BaseRanker]

None

融合排序參數(shù),詳見多向量檢索

async_req(可選)

bool

False

是否異步

出參描述

說明

返回結(jié)果為DashVectorResponse對(duì)象,DashVectorResponse對(duì)象中可獲取本次操作結(jié)果信息,如下表所示。

字段

類型

描述

示例

code

int

返回值,參考返回狀態(tài)碼說明

0

message

str

返回消息

success

request_id

str

請(qǐng)求唯一id

19215409-ea66-4db9-8764-26ce2eb5bb99

output

List[Doc]

返回相似性檢索結(jié)果

usage

RequestUsage

對(duì)Serverless實(shí)例(按量付費(fèi))集合的Doc檢索請(qǐng)求,成功后返回實(shí)際消耗的讀請(qǐng)求單元數(shù)