VECTOR INDEX with M=200 returns farthest candidates on 1D monotonic vectors
@JoeJRW 已经在做这个了。
开始于 2026年6月1日。
评估
这个 Issue 还没有评估数据。
描述
alisql version: 8.0.44-alisql-dev
Hi,I understand that ANN indexes may sacrifice accuracy for performance. However, in the following example, setting M=200 causes the query to return vectors near the end of the dataset, which are almost the farthest possible results from the query vector.
This seems different from a typical approximation error. Is this expected behavior, or does it indicate a bug in the vector index implementation?
DROP TABLE IF EXISTS tab_vidx_m3_1d_060;
DROP TABLE IF EXISTS tab_vidx_m6_1d_060;
DROP TABLE IF EXISTS tab_vidx_m200_1d_060;
DROP PROCEDURE IF EXISTS proc_insert_m_1d_060;
CREATE TABLE tab_vidx_m3_1d_060 (
id INT PRIMARY KEY,
v VECTOR(1),
VECTOR INDEX vi(v) DISTANCE=EUCLIDEAN M=3
);
CREATE TABLE tab_vidx_m6_1d_060 (
id INT PRIMARY KEY,
v VECTOR(1),
VECTOR INDEX vi(v) DISTANCE=EUCLIDEAN M=6
);
CREATE TABLE tab_vidx_m200_1d_060 (
id INT PRIMARY KEY,
v VECTOR(1),
VECTOR INDEX vi(v) DISTANCE=EUCLIDEAN M=200
);
DELIMITER //
CREATE PROCEDURE proc_insert_m_1d_060()
BEGIN
DECLARE i INT DEFAULT 1;
WHILE i <= 10000 DO
INSERT INTO tab_vidx_m3_1d_060 VALUES
(i, VEC_FromText(CONCAT('[', i, ']')));
INSERT INTO tab_vidx_m6_1d_060 VALUES
(i, VEC_FromText(CONCAT('[', i, ']')));
INSERT INTO tab_vidx_m200_1d_060 VALUES
(i, VEC_FromText(CONCAT('[', i, ']')));
SET i = i + 1;
END WHILE;
END //
DELIMITER ;
CALL proc_insert_m_1d_060();
DROP PROCEDURE IF EXISTS proc_insert_m_1d_060;
SELECT id
FROM tab_vidx_m3_1d_060 FORCE INDEX(vi)
ORDER BY VEC_DISTANCE(v, VEC_FromText('[1]'))
LIMIT 10;
SELECT id
FROM tab_vidx_m6_1d_060 FORCE INDEX(vi)
ORDER BY VEC_DISTANCE(v, VEC_FromText('[1]'))
LIMIT 10;
SELECT id
FROM tab_vidx_m200_1d_060 FORCE INDEX(vi)
ORDER BY VEC_DISTANCE(v, VEC_FromText('[1]'))
LIMIT 10;
- 主要语言
- C++
- 星标
- 6k
- 派生
- 902
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
alibaba/AliSQL 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 72/100
-
难度 4/5 3-5 天 新手友好度 52/100
-
难度 4/5 3-5 天 新手友好度 48/100
-
难度 4/5 3-5 天 新手友好度 55/100
-
Deployment Architecture Issues可能重新可做 @p1p1bear 于 68 天前认领,目前没有进行中的 PR。 未关闭
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 78/100
KhronosGroup/Vulkan-Tutorial#524 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 88/100
microsoft/onnxruntime-genai#2633 ·
维护者通常 1 天内回复
-
mapper bug
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 86/100
firebase/firebase-ios-sdk#16718 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 88/100
tesseract-ocr/tesseract#4627 ·