更新时间:2025-07-18 GMT+08:00
分享

向量查询

功能介绍

基于相似度匹配的查询方式,用于查找与给定查询向量相似的向量。返回指定的 Top K 个最相似的 Entity。

URI

POST /v1/entities/search

请求参数

表1 请求Body参数

参数

是否必选

参数类型

描述

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

filter

String

参数解释:

用于过滤匹配entity的标量过滤条件。可以将此设置为空字符串以跳过标量过滤。

约束限制:

要构建标量过滤条件,请参阅filter表达式规则。

取值范围:

不涉及。

默认取值:

空字符串,不进行标量过滤。

vector

Array of floats

参数解释:

要搜索的向量字段数据。

约束限制:

与collection field schema中定义的对应向量字段的类型和维度一致。

取值范围:

不涉及。

默认取值:

不涉及。

vector_field

String

参数解释:

要搜索的向量字段名称。

约束限制:

必须是collection field schema中存在的向量字段名称。

取值范围:

不涉及。

默认取值:

不涉及。

params

Map<String,Object>

参数解释:

额外的搜索参数配置。

可以配置的参数:

  • ef: 每个查询的邻居候选集大小。候选集越大,搜索的精度越高,但是搜索时间也会随之增加。(仅对HNSW索引类型生效)

  • search_list: 候选列表的大小,越大召回率越高,但性能会下降。(仅对HANNS索引类型生效)

  • radius:查询范围的半径,若指定则进行range查询。

约束限制:

不涉及。

取值范围:

ef: [top_k + offset, int32_max]

search_list: [top_k + offset, int32_max]

radius: [0, 1.0]

默认取值:

ef: top_k + offset

search_list: topk_k + offset

响应参数

状态码:200

表2 响应Body参数

参数

参数类型

描述

code

String

参数解释:

返回码。参见错误码章节。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

message

String

参数解释:

描述信息

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

data

entities_data object

参数解释:

响应数据。

约束限制:

不涉及。

表3 entities_data

参数

参数类型

描述

entities

Array of entity objects

参数解释:

查询到的信息。

约束限制:

不涉及。

表4 entity

参数

参数类型

描述

{自定义key}

Map<String,Object>

参数解释:

collection中的一个基本结构化数据实体,包含向量和标量等字段数据。

约束限制:

必须满足目标collection field schema。

取值范围:

不涉及。

默认取值:

不涉及。

状态码:400

表5 响应Body参数

参数

参数类型

描述

code

String

参数解释:

返回码。参见错误码章节。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

message

String

参数解释:

描述信息。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

请求示例

/v1/entities/search

{
  "store_name" : "test-storename",
  "collection_name" : "test-collection",
  "output_fields" : [ "vector", "scalar" ],
  "filter" : "pk > 0",
  "vector" : [ 0.3123, 0.43, 0.213 ],
  "vector_field" : "vector",
  "top_k" : 2,
  "offset" : 0,
  "params" : {
    "search_list" : 200
  }
}

响应示例

状态码:200

搜索成功

{
  "code" : "LMS.00000000",
  "data" : {
    "entities" : [ {
      "distance" : 0.049599655,
      "id" : 1,
      "scalar" : "文档1",
      "vector" : [ 0.324, 0.21, 0.2456 ]
    }, {
      "distance" : 0.049599655,
      "id" : 3,
      "scalar" : "文档3",
      "vector" : [ 0.324, 0.21, 0.2456 ]
    } ]
  },
  "message" : "search entities success"
}

状态码:400

搜索失败

{
  "code" : "LMS.00001001",
  "message" : "ErrInvalidParameter : the input parameter is incorrect."
}

状态码

状态码

描述

200

搜索成功

400

搜索失败

错误码

请参见错误码

相关文档