文档

向量检索语法

更新时间:

通用查询

HA3语法

query=index_name:'0.1,0.2,0.98,0.6;0.3,0.4,0.98,0.6...'
注:index_name为向量索引名,后面是要查询的向量

SQL语法

query=select proxima_score('index_name') as score,id from table_name where MATCHINDEX('index_name', ?) order by score asc limit 5&&kvpair=timeout:1000,iquan.plan.cache.enable:true;urlencode_data:false;iquan.plan.prepare.level:jni.post.optimize;dynamic_params:[["0.892704,0.783731"]]
注:index_name为向量索引名,kvpair中的dynamic_params是要查询的向量

指定topN查询

HA3语法

query=index_name:'0.1,0.2,0.98,0.6;0.3,0.4,0.98,0.6&n=10'
注:index_name为向量索引名,后面是要查询的向量,n指定向量检索返回的top结果数。

SQL语法

query=select proxima_score('index_name') as score,id from table_name where MATCHINDEX('index_name', ?) order by score asc limit 5&&kvpair=timeout:1000,iquan.plan.cache.enable:true;urlencode_data:false;iquan.plan.prepare.level:jni.post.optimize;dynamic_params:[["0.892704,0.783731&n=10"]]
注:index_name为向量索引名,kvpair中的dynamic_params是要查询的向量,n指定向量检索返回的top结果数。

设定最低分阈值

HA3语法

query=index_name:'0.1,0.2,0.98,0.6;0.3,0.4,0.98,0.6&n=10&sf=0.8'
注:index_name为向量索引名,后面是要查询的向量,sf指定要过滤分数的阈值。如果schema中配置的search_type参数是ip(内积距离)时,内积距离分数低于4.0的doc会被过滤掉。当用户在schema中的search_type参数是l2(欧式距离)时,欧式距离分数高于2.0的doc会被过滤掉,之所以是2.0, 而不是4.0, 是从性能考虑, 引擎计算的分数是欧式距离的平方。

SQL语法

query=select proxima_score('index_name') as score,id from table_name where MATCHINDEX('index_name', ?) order by score asc limit 5&&kvpair=timeout:1000,iquan.plan.cache.enable:true;urlencode_data:false;iquan.plan.prepare.level:jni.post.optimize;dynamic_params:[["0.892704,0.783731&n=10&sf=0.8"]]
注:index_name为向量索引名,kvpair中的dynamic_params是要查询的向量,sf指定要过滤分数的阈值。如果schema中配置的search_type参数是ip(内积距离)时,内积距离分数低于4.0的doc会被过滤掉。当用户在schema中的search_type参数是l2(欧式距离)时,欧式距离分数高于2.0的doc会被过滤掉,之所以是2.0, 而不是4.0, 是从性能考虑, 引擎计算的分数是欧式距离的平方。

区分类目的查询

HA3语法

query=aitheta_index_name:'16#0.1,0.2,0.98,0.6;1512#0.3,0.4,0.98,0.6&n=200'
// query需要做urlencode
query=aitheta_index_name:'16%230.1%2c0.2%2c0.98%2c0.6%3b1512%230.3%2c0.4%2c0.98%2c0.6%26n%3d200'
注:区分类目的情况下,参数值中需要指定类目id以及要查询的向量,类目id和向量之间使用'#'分隔(query中需要对'#'做URLEncode),多个类目之间使用逗号分隔,多个向量之间以分号分隔。

SQL语法

query=select proxima_score('index_name') as score,id from table_name where MATCHINDEX('index_name', ?) order by score asc limit 5&&kvpair=timeout:1000,iquan.plan.cache.enable:true;urlencode_data:false;iquan.plan.prepare.level:jni.post.optimize;dynamic_params:[["16%230.1%2c0.2%2c0.98%2c0.6%3b1512%230.3%2c0.4%2c0.98%2c0.6%26n%3d200"]]
注:index_name为向量索引名,kvpair中的dynamic_params是要查询的向量
注:dynamic_params内容需要做urlencode
注:区分类目的情况下,参数值中需要指定类目id以及要查询的向量,类目id和向量之间使用'#'分隔(query中需要对'#'做URLEncode),多个类目之间使用逗号分隔,多个向量之间以分号分隔。

设置召回参数

HA3语法

query=index_name:'0.1,0.2,0.98,0.6;0.3,0.4,0.98,0.6&n=10&sf=0.8&search_params={"proxima.qc.searcher.scan_ratio":0.001,"proxima.general.searcher.scan_count":10000}'
注:search_params指定向量召回参数,为json格式。proxima.qc.searcher.scan_ratio含有同上,proxima.general.searcher.scan_count意义同min_scan_doc_cnt
注:n,sf,search_params出现的顺序不能变

SQL语法

query=select proxima_score('index_name') as score,id from table_name where MATCHINDEX('index_name', ?) order by score asc limit 5&&kvpair=timeout:1000,iquan.plan.cache.enable:true;urlencode_data:false;iquan.plan.prepare.level:jni.post.optimize;dynamic_params:[["0.892704,0.783731&n=10&sf=0.8&search_params={"proxima.qc.searcher.scan_ratio":0.001,"proxima.general.searcher.scan_count":10000}"]]

注:index_name为向量索引名,kvpair中的dynamic_params是要查询的向量,search_params指定向量召回参数,为json格式。proxima.qc.searcher.scan_ratio含有同上,proxima.general.searcher.scan_count意义同min_scan_doc_cnt
注:n,sf,search_params出现的顺序不能变

查询时按相似度排序

HA3语法

query=index_name:'0.1,0.2,0.98,0.6;0.3,0.4,0.98,0.6...'&&kvpairs=first_formula:proxima_score(index_name)&&sort=+RANK
注:index_name为向量索引名,后面是要查询的向量,kvpairs子句指定粗排公式为proxima_score(索引名),sort子句指定按相似度得分从小到大排序

SQL语法

query=select proxima_score('index_name') as score,id from table_name where MATCHINDEX('index_name', ?) order by score asc limit 5&&kvpair=timeout:1000,iquan.plan.cache.enable:true;urlencode_data:false;iquan.plan.prepare.level:jni.post.optimize;dynamic_params:[["0.892704,0.783731"]]
注:index_name为向量索引名,kvpair中的dynamic_params是要查询的向量,select中的proxima_score(索引名)函数用于获取向量得分,通过order by 指定向量得分为排序依据,asc表示正序,desc 表示倒序
  • 本页导读 (0)
文档反馈