You need to enable JavaScript to run this app.
文档中心
向量数据库VikingDB

向量数据库VikingDB

复制全文
下载 pdf
检索(search)
SearchByScalar
复制全文
下载 pdf
SearchByScalar

概述

/index/search 接口用于实现检索,本页面主要介绍如何实现标量检索。
向量数据库中的标量检索指的是基于标量值的检索方法。在向量数据库中,每个向量都有一个或多个标量值,标量检索可以基于这些标量值进行检索,找到与查询相关的数据。例如文档检索中的作者特征检索。
Collection 数据写入/删除后,Index 数据更新时间最长滞后 20s,不能立即在 Index 检索到。

请求参数

字段名

类型

是否必传

说明

CollectionName/CollectionAlias

string

是

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

IndexName

string

是

索引名称

Limit

number

是

返回数量

OutputFields

string[]

否

返回数据字段

Partition

string \| number

否

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

Filter

Filter

否

标量过滤

ScalarConfig

ScalarConfig

否

标量配置

ScalarConfig

字段名

类型

是否必传

说明

Order

asc \| desc

是

排序

FieldName

string

是

排序字段,需要字段值可被排序

Filter

type Filter =
  | MustTypeCondition
  | NumberRangeTypeCondition
  | AreaRangeTypeCondition
  | LogicTypeCondition;
  
enum SearchOperation {
  Must = "must",
  MustNot = "must_not",
  Range = "range",
  RangeOut = "range_out",
  And = "and",
  Or = "or",
} 

MustTypeCondition

字段名

类型

是否必传

说明

Operation

SearchOperation.Must
SearchOperation.MustNot

是

操作符

FieldName

string

是

字段名称

Conditions

Array<number \| string \| boolean>

是

操作元素

NumberRangeTypeCondition

字段名

类型

是否必传

说明

Operation

SearchOperation.Range
SearchOperation.RangeOut

是

操作符

FieldName

string

是

字段名称

GreatThen

number

否

大于

LessThen

number

否

小于

GreatThenEqual

number

否

大于等于

LessThenEqual

number

否

小于等于

AreaRangeTypeCondition

字段名

类型

是否必传

说明

Operation

SearchOperation.Range
SearchOperation.RangeOut

是

操作符

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.SearchByScalar<Data>({
  CollectionName: 'test_collection_1',
  IndexName: 'test_index_1',
  ScalarConfig: {
    FieldName: 'Id',
    Order: 'asc',
  }, // optional
  Limit: 10,
  DenseWeight: 0.5, // optional
  OutputFields: ['Id', 'Name'], // optional
  Partition: "default", // optional
  Filter: {
    Operation: vikingdb.search.SearchOperation.And,
    Conditions: [
      { FieldName: 'Name', Operation: vikingdb.search.SearchOperation.Must, Conditions: ['Tom'] },
      { FieldName: 'Id', Operation: vikingdb.search.SearchOperation.Range, GreatThen: 10 }
    ]
  }, // optional
})

console.log(response.Data) //  检索出来的数据 SearchData 
最近更新时间:2026.09.08 15:30:56
这个页面对您有帮助吗?
有用
有用
无用
无用