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 にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- 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 が 66 日前に担当しましたが、オープン中のプルリクエストはありません。 オープン
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
category:port-update
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1〜3時間 初心者へのやさしさ 88/100
tensorflow/tflite-micro#3784 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
メンテナーはふだん 1 日以内に返信