You need to enable JavaScript to run this app.
导航
SearchByPrimaryKeys
最近更新时间:2024.06.14 11:34:52首次发布时间:2024.06.14 11:34:52

概述

SearchByPrimaryKeys 用于主键 ID检索。根据主键 ID,搜索与其距离最近的 Limit 个向量。

请求参数

字段名

类型

是否必传

说明

CollectionName/CollectionAlias

string

数据集名称或数据集别名,二选一

IndexName

string

索引名称

Limit

number

返回数量

DenseWeight

number

权重

OutputFields

string[]

返回数据字段

Partition

string | number

子索引名称,类型对齐子索引类型

Filter

Filter

标量过滤

PrimaryKeys

Array<string | number>

主键字段值,类型对齐主键字段

Filter

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",
}

MustTypeCondition

字段名

类型

是否必传

说明

Operation

SearchOperation.Must
SearchOperation.MustNot

操作符

FieldName

string

字段名称

Conditions

Array<number | string | boolean>

操作元素

NumberRangeTypeCondition

字段名

类型

是否必传

说明

Operation

SearchOperation.Range
SearchOpeartion.RangeOut

操作符

FieldName

string

字段名称

GreatThen

number

大于

LessThen

number

小于

GreatThenEqual

number

大于等于

LessThenEqual

number

小于等于

AreaRangeTypeCondition

字段名

类型

是否必传

说明

Operation

SearchOperation.Range
SearchOpeartion.RangeOut

操作符

FieldNames

[string, string]

横坐标、纵坐标

Center

[number, number]

横坐标、纵坐标

Radius

number

半径

GeographicalRangeTypeCondition

字段名

类型

是否必传

说明

Operation

SearchOpeartion.GeographicalRange

操作符

FieldNames

[string, string]

横坐标、纵坐标

Center

[number, number]

横坐标、纵坐标

Radius

number

半径

LogicTypeCondition

字段名

类型

是否必传

说明

Operation

SearchOperation.And
SearchOperation.Or

操作符

Conditions

Filter[]

子过滤条件

响应参数
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