混合搜索
功能介绍
基于相似度匹配的查询方式,用于查找与给定多个向量进行相似性搜索,支持密集向量,稀疏向量等多路召回,并对结果进行重排处理,最终返回指定的 Top K 个最相似的 Entity。
URI
POST /v1/entities/hybrid-search
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
store_name |
是 |
String |
参数解释: 知识仓实例名称,region内唯一。 约束限制: 长度范围为3到63个字符,支持小写字母、数字、中划线(-),第一个字符只能够是小写字母,中划线(-)不得出现在字符串末尾。 取值范围: 不涉及。 默认取值: 不涉及。 |
collection_name |
是 |
String |
参数解释: collection名称,知识仓内唯一。 约束限制: 长度范围为1到255个字符,支持字母、数字、中划线(-)和下划线(),大小写敏感。第一个字符只能够是下划线()和字母,中划线(-)不得出现在字符串末尾。 取值范围: 不涉及。 默认取值: 不涉及。 |
output_fields |
否 |
Array of strings |
参数解释: field名称列表,配置需与搜索结果一起返回的字段。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: [ ],不返回任何额外的字段数据。 |
top_k |
否 |
Integer |
参数解释: 返回的entity个数限制。可以将此参数与offset结合使用以启用分页。 约束限制: 与offset取值的总和应小于16384。 取值范围: [1, 16384] 默认取值: 10 |
offset |
否 |
Integer |
参数解释: 在搜索结果中跳过的记录数。可以将此参数与 top_k 参数结合使用以启用分页。 约束限制: 与top_k取值的总和应小于16384。 取值范围: 大于等于0 默认取值: 0 |
sub_search |
是 |
Array of sub_search objects |
参数解释: rerank策略。 约束限制: 不涉及 取值范围: 不涉及。 默认取值: 默认使用rrf算法。 |
rerank |
否 |
rerank object |
参数解释: rerank策略。 约束限制: 不涉及 取值范围: 不涉及。 默认取值: 默认使用rrf算法。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
vector_field |
是 |
String |
参数解释: 要搜索的向量字段名称。 约束限制: 必须是collection field schema中存在的向量字段名称。 取值范围: 不涉及。 默认取值: 不涉及。 |
vector |
是 |
Array of objects |
参数解释: 要搜索的向量字段数据。 约束限制: 与collection field schema中定义的对应向量字段的类型和维度一致。 取值范围: 不涉及。 默认取值: 不涉及。 |
top_k |
否 |
Integer |
参数解释: 返回的entity个数限制。可以将此参数与offset结合使用以启用分页。 约束限制: 与offset取值的总和应小于16384。 取值范围: [1, 16384] 默认取值: 10 |
offset |
否 |
Integer |
参数解释: 在搜索结果中跳过的记录数。可以将此参数与 top_k 参数结合使用以启用分页。 约束限制: 与top_k取值的总和应小于16384。 取值范围: 大于等于0 默认取值: 0 |
filter |
否 |
String |
参数解释: 用于过滤匹配entity的标量过滤条件。可以将此设置为空字符串以跳过标量过滤。 约束限制: 要构建标量过滤条件,请参阅filter表达式规则。 取值范围: 不涉及。 默认取值: 空字符串,不就行标量过滤。 |
params |
否 |
Map<String,Object> |
参数解释: 额外的搜索参数配置。 可以配置的参数: 约束限制: 不涉及。 取值范围: ef: [top_k + offset, int32_max] search_list: [top_k + offset, int32_max] cut_off_frequency:[0, 1.0] 默认取值: ef: top_k search_list: 16 cut_off_frequency: 0 |
响应参数
状态码:200
参数 |
参数类型 |
描述 |
---|---|---|
code |
String |
参数解释: 返回码。参见错误码章节。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 |
message |
String |
参数解释: 描述信息 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 |
data |
Map<String,Array> |
参数解释: 响应数据。 约束限制: 不涉及。 |
参数 |
参数类型 |
描述 |
---|---|---|
[数组元素] |
Array of entity objects |
参数解释: 查询返回的entity列表,其中包括相似度得分distance。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 |
状态码:400
参数 |
参数类型 |
描述 |
---|---|---|
code |
String |
参数解释: 返回码。参见错误码章节。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 |
message |
String |
参数解释: 描述信息。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 |
请求示例
/v1/entities/hybrid-search { "store_name" : "store_test", "collection_name" : "collection_test", "output_fields" : [ "primary_key", "vector", "scalar_1" ], "sub_search" : [ { "vector_field" : "dense_vector", "top_k" : 10, "offset" : 0, "vector" : [ [ 0.3123, 0.43, 0.213 ] ], "filter" : "primary_key > 100" }, { "vector_field" : "sparse_vector", "top_k" : 10, "offset" : 0, "vector" : [ { "123" : 0.1, "234" : 0.9 } ], "filter" : "primary_key > 100" } ], "top_k" : 10, "offset" : 0, "rerank" : { "strategy" : "rrf", "params" : { "k" : 60 } } }
响应示例
状态码:200
搜索成功
{ "code" : "LMS.00000000", "message" : "hybrid search success", "data" : { "entities" : [ { "distance" : 0.025679013, "primary_key" : 200, "vector" : [ 22.33, 33.44, 44.55 ], "scalar_1" : "YouShangYun" }, { "distance" : 0.025674567, "primary_key" : 300, "vector" : [ 221.33, 331.441, 441.55 ], "scalar_1" : "NewYun" } ] } }
状态码:400
搜索失败
{ "code" : "LMS.00001001", "message" : "ErrInvalidParameter : the input parameter is incorrect." }
状态码
状态码 |
描述 |
---|---|
200 |
搜索成功 |
400 |
搜索失败 |
错误码
请参见错误码。