跳到主要内容

Hybrid Search

This operation searches for entities based on vector similarity and scalar filtering and reranks the results using a specified strategy.

POST
/v2/vectordb/entities/hybrid_search
集群 Endpoint

该 API 的 Base URL 格式如下:

https://${CLUSTER_ENDPOINT}

📘说明
export CLUSTER_ENDPOINT=""
参数
Authorizationstringheaderrequired

认证令牌,应为具备适当权限的 API 密钥或用冒号分隔的用户名和密码,如 username:password

示例值:Bearer {{TOKEN}}
请求体application/json
collectionNamestring必填项

Collection 名称。

partitionNamesarray

Partition 名称列表。设置此参数表示搜索仅限于指定的 Partition。否则,搜索会在 Collection 中搜索所有 Partition。

[]partitionNamesstring

一个 Partition 名称。

searcharrayrequired

搜索参数。

[]searchobjectrequired

Search parameter for a vector field.

dataarrayrequired

一个向量嵌入列表。Zilliz Cloud 会搜索与指定向量嵌入最相似的向量。

[]datanumber<float32>

一个向量嵌入。

annsFieldstring必填项

向量字段名称。

filterstring必填项

标量过滤条件。

groupingFieldstring必填项

用于分组聚合的字段名称。

metricTypestring

当前搜索所使用的度量类型。该值应与目标 Collection 的度量类型相同。

limitinteger必填项

需要返回的 Entity 数量。

offsetinteger必填项

需要在搜索结果中跳过的 Entity 数量。

ignoreGrowingboolean必填项

搜索时是否需要忽略 Growing Segment 中的 Entity。

paramsobject

Extra search parameters.

radiusinteger

确定最不相似向量的阈值。当设置 metrictype 为 L2 时,请确保该值大于 rangefilter 的值。否则,该值应小于 range_filter 的值。

range_filterinteger

优化搜索结果的相似度范围。当设置 metric_type 为 IP 或 COSINE 时,请确保该值大于 radius 的值。否则,该值应小于 radius 的值。

rerankobject

重新排序策略。

strategystring

重新排序策略。

paramsobjectrequired

指定重新排序策略的参数。

kinteger必填项

可调节常数。仅当策略设置为 rrf 时适用。

limitinteger

需要返回的 Entity 总数。 您可以使用此参数与 param 中的 offset 结合使用,实现分页。 此值与 param 中的 offset 之和应小于 16,384。

outputFieldsarray

搜索结果中需要包含的字段列表。

[]outputFieldsstring

字段名称

export TOKEN="db_admin:xxxxxxxxxxxxx"

curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/entities/hybrid_search" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
"collectionName": "test_collection",
"search": [
{
"data": [
[
0.673437956701697,
0.739243747672878
]
],
"annsField": "float_vector_1",
"limit": 10,
"outputFields": [
"*"
]
},
{
"data": [
[
0.075384179256879,
0.9971545645073111
]
],
"annsField": "float_vector_2",
"limit": 10,
"outputFields": [
"*"
]
}
],
"rerank": {
"strategy": "rrf",
"params": {
"k": 10
}
},
"limit": 3,
"outputFields": [
"user_id",
"word_count",
"book_describe"
]
}'
响应200 - application/json
codeinteger

响应码。

dataarray

搜索结果。

[]dataobject

An entity object.

Returns an error message.

codeinteger

响应码。

messagestring

错误描述。

{
"code": 0,
"cost": 0,
"data": [
{
"book_describe": "book_105",
"distance": 0.09090909,
"id": 450519760774180800,
"user_id": 5,
"word_count": 105
},
{
"book_describe": "book_246",
"distance": 0.09090909,
"id": 450519760774180900,
"user_id": 46,
"word_count": 246
},
{
"book_describe": "book_367",
"distance": 0.08333333600000001,
"id": 450519760774181060,
"user_id": 67,
"word_count": 367
}
]
}