experimental_hnsw_index¶
experimental_hnsw_index系统变量控制是否启用 HNSW(Hierarchical Navigable Small World)向量索引插件。设为0(默认值)时,CREATE INDEX ... USING hnsw语句将被 拒绝。在创建或重建 HNSW 索引之前将其设为1,以对向量列执行近似最近邻(ANN)搜索。 这是由会话级别标志控制的实验性功能。
experimental_hnsw_index 系统变量控制 MatrixOne 中 HNSW 向量索引算法的访问权限。HNSW
是一种基于图的算法,为向量数据提供高性能的近似最近邻搜索。由于这是实验性功能,该变量默
认值为 0,必须显式启用才能使用。
语法¶
SET GLOBAL experimental_hnsw_index = 0; SET SESSION experimental_hnsw_index = 1;
查询当前值:
SHOW VARIABLES LIKE ‘experimental_hnsw_index’; SELECT @@experimental_hnsw_index;
参数说明¶
属性 |
值 |
|---|---|
变量类型 |
|
作用域 |
|
是否动态 |
是 |
默认值 |
|
可选值 |
|
示例¶
DROP DATABASE IF EXISTS hnsw_demo;
CREATE DATABASE hnsw_demo;
USE hnsw_demo;
SET experimental_hnsw_index = 1;
CREATE TABLE h(a BIGINT PRIMARY KEY, v VECF32(3));
INSERT INTO h VALUES (1, '[1,1,1]'), (2, '[2,2,2]'), (3, '[3,3,3]'), (4, '[8,8,8]');
CREATE INDEX ix USING hnsw ON h(v) OP_TYPE "vector_l2_ops" MAX_INDEX_CAPACITY 1000000;
SELECT a FROM h ORDER BY L2_DISTANCE(v, '[1,1,1]') ASC LIMIT 2;
SET experimental_hnsw_index = 0;
DROP TABLE h;
DROP DATABASE hnsw_demo;
限制¶
experimental_hnsw_index默认为0。在此变量为0时尝试CREATE INDEX ... USING hnsw会导致操作失败。HNSW 是纯 CPU 算法,不需要 GPU 硬件。
HNSW 索引支持以下构建参数:
m、ef_construction、ef_search和max_index_capacity。这些参数可以在CREATE INDEX或ALTER TABLE ... ALTER REINDEX语句中指定。这是实验性功能。其行为、性能特性和 API 在未来的版本中可能会发生变化。