SearchByPrimaryKeys 用于主键 ID检索。根据主键 ID,搜索与其距离最近的 Limit 个向量。
字段名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
CollectionName/CollectionAlias |
| 是 | 数据集名称或数据集别名,二选一 |
IndexName |
| 是 | 索引名称 |
Limit |
| 是 | 返回数量 |
DenseWeight |
| 否 | 权重 |
OutputFields |
| 否 | 返回数据字段 |
Partition |
| 否 | 子索引名称,类型对齐子索引类型 |
Filter |
| 否 | 标量过滤 |
PrimaryKeys |
| 是 | 主键字段值,类型对齐主键字段 |
type Filter = | MustTypeCondition | NumberRangeTypeCondition | AreaRangeTypeCondition | GeographicalRangeTypeCondition | LogicTypeCondition; enum SearchOperation { Must = "must", MustNot = "must_not", Range = "range", RangeOut = "range_out", /** 地理距离筛选 */ GeographicalRange = "georange", And = "and", Or = "or", }
字段名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
Operation |
| 是 | 操作符 |
FieldName |
| 是 | 字段名称 |
Conditions |
| 是 | 操作元素 |
字段名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
Operation |
| 是 | 操作符 |
FieldName |
| 是 | 字段名称 |
GreatThen |
| 否 | 大于 |
LessThen |
| 否 | 小于 |
GreatThenEqual |
| 否 | 大于等于 |
LessThenEqual |
| 否 | 小于等于 |
字段名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
Operation |
| 是 | 操作符 |
FieldNames |
| 是 | 横坐标、纵坐标 |
Center |
| 是 | 横坐标、纵坐标 |
Radius |
| 是 | 半径 |
字段名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
Operation |
| 是 | 操作符 |
FieldNames |
| 是 | 横坐标、纵坐标 |
Center |
| 是 | 横坐标、纵坐标 |
Radius |
| 是 | 半径 |
字段名 | 类型 | 是否必传 | 说明 |
---|---|---|---|
Operation |
| 是 | 操作符 |
Conditions |
| 是 | 子过滤条件 |
declare class SearchResponse<Data extends Record<string, any>> { readonly Data: SearchData<Data>[][]; readonly OriginalRequest: string; readonly LogId: string; constructor( Data: SearchData<Data>[][], OriginalRequest: string, LogId: string ); }
/** * `score` 为检索排名 * * `fields` 为这条数据的键值对 * * 拓展字段中可能还会有其它内部字段,如: * - 主键字段,key 为定义的字段名 */ interface SearchData<Data extends Record<string, unknown>> { Score: number; Fields?: Data; [key: string]: unknown; }
import { vikingdb } from '@volcengine/openapi' declare const service: vikingdb.VikingdbService // 替换为你初始化好的实例 interface Data { Id: number, Name: string } const response = await service.search.SearchByPrimaryKeys<Data>({ CollectionName: 'test_collection_1', IndexName: 'test_index_1', PrimaryKeys: [1, 2], Limit: 10, DenseWeight: 0.5, // optional OutputFields: ['Id', 'Name'], // optional Partition: 10, // optional Filter: { Operation: vikingdb.search.SearchOperation.And, Conditions: [ { FieldName: 'Name', Operation: vikingdb.search.SearchOpeartion.Must, Conditions: ['Tom'] }, { FieldName: 'Id', Opeartion: vikingdb.search.SearchOpeartion.Range, GreatThen: 10 } ] }, // optional }) console.log(response.Data) // 检索出来的数据 SearchData