检索功能包括多个接口组成,分别对应不同的检索模式和业务场景。
V2接口则将不同检索模式对应到不同的接口,更加清晰,便于您针对自己的业务场景,选择合适的检索方式。
| 参数名 | 类型 | 必选 | 子参数 | 类型 | 备注 |
|---|---|---|---|---|---|
| resourceId | string | 2选1 | 资源id | ||
| collectionName | String | collection名称 | |||
| indexName | String | 是 | 索引名称 | ||
outputFields | List[string] | 否 | 要返回的标量字段列表。
| ||
| filter | Map[String, Object] | 否 | 过滤条件,格式见下文。默认为空,不做过滤 | ||
| limit | Integer | 否 | 检索结果数量,默认为10, 上限是 100000 | ||
| offset | Integer | 否 | 偏移量。仅分页场景下使用,不建议设置过大值,否则有深分页影响。默认值为0。设置值至少为0,语义和mysql的offset相同。 | ||
| advance(高级参数,不常使用) | SearchAdvance | 否 | denseWeight | float32 | 如果collection带有sparse向量字段,这里可以指定检索时dense和sparse的权重。默认值0.5,可选范围[0.2, 1] |
| idsIn | List[Object] | 设定此参数,会限定仅在主键列表范围内进行检索。默认为空。 | |||
| idsNotIn | List[Object] | 设定此参数,将把主键列表范围内的数据从检索结果中排除 。默认为空。 | |||
| postProcessOps | List[Map[String, Object]] | 后置处理算子列表。在向量或标量召回阶段后,对候选数据进行进一步过滤处理,如字符串匹配、频控等。每个算子为一个map,串行执行。默认为空。详见下文后置处理算子。 | |||
postProcessInputLimit | Int | 当设置了 postProcessOps 时,进入后置处理阶段的候选数量。 | |||
| scaleK | float64 | 检索 sef 是索引参数 sef 的 scale_k 倍。默认值为 1,取值范围 [0.1, 100],值越大检索结果越精确,但相应地会降低性能。 | |||
| filterPreAnnLimit | Integer | ||||
| filterPreAnnRatio | Double |
使用 filter 的前提是,相应的标量字段设置了标量索引(scalarIndex)。
| 算子 | 适用字段类型 | 说明 | 示例 |
|---|---|---|---|
must | string、int64、bool、list[string]、list[int64] | 针对指定字段名生效,语义为必须在 [...] 之中,即 "must in"。 |
|
must_not | string、int64、bool、list[string]、list[int64] | 针对指定字段名生效,语义为必须不在 [...] 之中,即 "must not in"。 |
|
and | / | 逻辑算子,针对逻辑查询需求,对多个条件取交集。 |
|
or | / | 逻辑算子,针对逻辑查询需求,对多个条件取并集。 |
|
range | int64、float32 | 针对指定字段名生效,语义为必须在指定范围内。配置使用 |
|
time_range | date_time | 时间点筛选,配置使用 |
|
geo_range | geo_point | 地理距离筛选,使用 |
|
| 算子 | 适用字段类型 | 介绍 | 示例 |
|---|---|---|---|
score_fusion | string | 分数融合算子,用于融合指定的时空标量的分数。 |
|
string_contain | string | 关键词匹配过滤算子。表示该字段内容包含 pattern。 |
|
string_match | string | 正则匹配过滤算子。 |
|
enum_freq_limiter | string | 频控算子。用于保证一次召回的结果中,一个特定取值出现的总数不超过 |
|
| 能力 | 方法与路径 |
|---|---|
| 向量检索 | POST /api/vikingdb/data/search/vector |
| 随机检索 | POST /api/vikingdb/data/search/random |
| 关键词检索 | POST /api/vikingdb/data/search/keywords |
| ID 检索 | POST /api/vikingdb/data/search/id |
| 标量排序检索 | POST /api/vikingdb/data/search/scalar |
| 多模态检索 | POST /api/vikingdb/data/search/multi_modal |
本接口的业务错误码、触发条件和处理建议统一参见向量库 V2 错误码。排查时请同时记录响应中的 request_id,以便定位具体请求。