全部产品
Search
文档中心

智能开放搜索 OpenSearch:向量检索

更新时间:Dec 27, 2023

向量检索介绍

为了满足更多元化、更复杂的业务场景,开放搜索推出向量检索功能,在特定的业务场景下(特别是教育搜题场景、图片搜索场景),可以结合多路搜索功能,提升搜索结果的准确率。下面将介绍向量索引的语法说明注意事项

语法说明

query = vector_index:'向量'

示例:查询64维的向量索引
vector: '0.377796,-0.958450,0.409853,-0.238177,-1.293826,0.356797,-0.295727,0.847301,-1.220337,0.148032,-1.128458,0.903187,0.509352,0.293686,-1.005852,-0.488839,0.888227,-0.555556,-0.658025,0.267552,-0.567601,0.003045,0.591734,-0.515983,-1.316453,-1.462450,0.091946,1.554954,0.384802,0.720498,0.144338,1.217826,0.724039,0.044212,0.571332,-1.425430,0.618965,0.481887,-1.617787,1.505416,-0.683652,1.030900,0.562021,0.162437,0.816546,0.112229,-0.739288,-0.342643,-0.199292,0.508368,-1.384887,-1.842170,0.952622,-1.699499,0.199430,-0.232464,-0.273227,-0.383696,-0.511302,0.005458,1.873572,-0.926169,-0.417587,-0.660156'

使用示例

设定最低分阈值

功能说明:控制向量分值低于或高于某个阈值时,不参与召回。

参数格式:&sf=number

使用示例

query=index_name:'0.1,0.2,0.98,0.6;0.3,0.4,0.98,0.6&sf=0.8'

指定top n 查询

功能说明:指定向量检索返回的top结果数

参数格式:&n=number

  • 直接拼接在向量之后

使用示例

query=vector_index:'0.1,0.2,0.98,0.6;0.3,0.4,0.98,0.6&n=10'

获取向量得分排序

功能说明:通过在业务排序表达式中设置proxima_score() 函数获取向量得分进行排序。

配置步骤

  1. 创建业务排序策略:

image

:proxima_score函数的参数为向量索引名称。

  1. 搜索测试页面引用,创建的业务排序策略进行测试:

image

说明
  • 系统默认使用欧式距离(l2)

  • 内积距离(ip),向量得分越大,文档相关性越高

  • 欧式距离(l2),向量得分越小,文档相关性越高

注意事项

  • 系统默认在构建索引时的向量距离方式为欧式距离(l2),如需内积距离(ip),需要将内积距离的向量归一化后在传入引擎

  • 向量索引对应的字段必须为DOUBLE_ARRAY类型。

  • 向量分词器目前支持的维度有64维、128维、256、512维,每个维度对应的DOUBLE_ARAARY类型的字段中的元素也必须为64维、128维、256维、512维,必须精准对应。

  • 向量索引的长度限制为编码前4K,一般一个query里面最多支持查询2个向量索引