DataVec向量引擎参数
hnsw_ef_search
参数说明: 使用HNSW索引扫描时的动态候选集大小。
该参数仅支持表1中对应方法三进行设置。
取值范围: 整型,1~1000
设置建议: 使用HNSW索引扫描时,sql结果数量会受限于Limit,hnsw_ef_search为初始扫描集合大小,如果没有获取足够Limit大小的数据会自动扩大hnsw_ef_search继续扫描。该值在取值范围内设置即可。
默认值: 40
说明: 如果需要超过500个结果,请使用
IVFFLAT索引。
ivfflat_probes
参数说明: 使用IVFFLAT索引扫描时的动态候选集大小。
该参数仅支持表1中对应方法三进行设置。
取值范围: 整型,1~32768
设置建议: sqrt(lists),list为IVFFLAT索引构建时的入参,详情请参考向量索引。
默认值: 1
说明:
较高的值会提升查询的召回率,但同时查询速度会下降。
enable_pq
参数说明: 索引是否开启PQ。
该参数属于POSTMASTER类型参数,请参考表2中对应设置方法进行设置。
取值范围: 布尔型,on/off
默认值: off
说明:
启用PQ功能前,必须安装
libkvecturbo.soPQ加速安装包,并正确配置DATAVEC_PQ_LIB_PATH环境变量。否则数据库将无法正常启动。
hnsw_earlystop_threshold
参数说明: HNSW索引开启PQ时,在早停策略中设置图搜索的最大连续迭代次数。
该参数仅支持表1中对应方法三进行设置。
取值范围: 整型,160~INT32_MAX
默认值: INT32_MAX
说明:
默认值实际是不开启早停策略的状态。较低的值可以提升查询速率,但可能会使召回率降低,如果召回率不够高可以适当调大参数值。
ivfpq_kreorder
参数说明: IVFFLAT索引开启PQ时,设置参与精排候选集的大小
该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。
取值范围: 整型,0~INT_MAX
默认值: 0
说明:
默认值是不开启,较高的值会提升查询的召回率,但同时查询速度会下降。
推荐值大小为k*ivfflat_probes,其中k为用户查询sql设置的limit k。如果ivfpq_kreorder的值小于用户查询sql设置的limit k,返回记录数为实际精排候选集大小。
创建IVFPQ索引时,不设置ivfpq_kreorder参数或者该参数值设置不合理会导致查询结果乱序。
rbq_refinek
参数说明: 选择精排的候选池范围,一般值越高,qps越低,但召回率越高。
该参数支持表2中对应方法一、二、三进行设置。
取值范围: 浮点型,默认5,范围[1-20,0000,0000]
默认值: 5.0
rbq_query_bits
参数说明:设置是否对查询向量进行额外的标量量化,适当设置可以提升召回率。
该参数仅支持表2中对应方法三进行设置。
取值范围: 整型,默认为8,范围[1-8]
默认值: 8
rbq_sample_rows
参数说明:如果是先构建索引再插入数据的场景,可以通过该参数设置触发延迟索引的数据行数。由于rabitq算法构建索引时需要一定的数据进行训练,如果无数据创建索引会影响向量查询召回率,可以通过该参数调整延迟索引的阈值条件。如果是先插入数据再构建索引则无需设置。默认1000,范围[1000-INX_MAX]
该参数仅支持表2中对应方法三进行设置。
取值范围: 整型,默认1000,范围[1000-20,0000,0000]
默认值: 1000