Комментарии 6
Бред какой-то. С какими параметрами индексы строились? Какой был recall? Как можно сравнивать непонятно что непонятно с чем.
Даже у одного и того же pgvector, QPS может быть 1800, а может быть 8. На одних и тех же данных (glove-100-angular). А сравнивать pgvector с pgvecto.rs c VectorChord с pgvectorscale, все четыре индекса используют неизвестные несравнимые параметры и разный recall — ну, это такое...
Не читал, но автора презираю?)) Про параметры - приведён код миграций в которых собственно видно, что параметры тупо дефолтные. Простой тест из коробки. Про recall - тут весь тест это baseline : дефолтные индексы без тонкой настройки, оценка QPS на левом датасете. Тут метрики — это как линейкой до микрона мерить
Я читал. Поэтому и написал, что нет смысла сравнивать несравнимое.
Кто-то возвращает ответ за 2 секунды, но там из десяти документов пять неправильных. А кто-то — за три, но девять из десяти правильные.
Сравнивать можно только при одном и том же recall. Это несложно. вначале надо собрать ground truth, то есть прогнать запросы без индекса и записать абсолютно правильные ответы. Потом с индексом и считать recall. То есть сколько процентов правильных возвращает. Ну и строить графики, как в ann-benchmarks, qps, build time, index size, recall, что угодно vs что угодно.
postgres с pgvector насколько мне известно, проигрывает по производительности векторным базам данных. Хотелось бы увидеть сравнение именно с векторными базами данных.

Векторный поиск в PostgreSQL: pgvector, pgvectorscale или VectorChord?