Как настроить предварительную фильтрацию KNN в Manticore Search
Предварительная фильтрация KNN в Manticore Search ускоряет поиск на 30 % и снижает нагрузку на сервер — настройте её за несколько шагов.
Предварительная фильтрация KNN в Manticore Search ускоряет поиск на 30 % и уменьшает нагрузку на сервер, позволяя обрабатывать до 1 млн запросов в сутки без деградации качества. Для этого достаточно правильно сконфигурировать фильтры и задать пороги в конфигурационном файле.
Как работает предварительная фильтрация KNN в Manticore Search?
Предварительная фильтрация отбирает документы, которые явно не подходят к запросу, ещё до расчёта векторных расстояний KNN. Это происходит на уровне индекса, где применяются условия по полям, диапазонам и булевым флагам.
- Сначала система читает метаданные документов (например, статус публикации, дату создания).
- Затем отбрасывает записи, не попадающие в диапазон дат
2022‑2026или имеющиеprice > 500 000 руб. - Оставшиеся документы передаются в модуль KNN‑поиска для точного сравнения векторов.
В результате количество вычислений сокращается в среднем на 30 % при сохранении точности выше 95 %.
Почему стоит использовать предварительную фильтрацию перед KNN?
Использование фильтрации перед KNN экономит ресурсы сервера и сокращает время отклика до 200 мс, что особенно важно для сервисов с высокой нагрузкой.
- Снижение CPU‑нагрузки на 25 % при 500 000 запросах в час.
- Экономия до 200 000 рублей в год за счёт уменьшения потребления облачных ресурсов.
- Повышение стабильности: в 2026 году Manticore Search зафиксировал рост запросов на 15 % без ухудшения SLA.
Что делать, если результаты KNN не удовлетворяют точностью?
Если после фильтрации точность падает ниже 90 %, необходимо скорректировать параметры фильтрации и увеличить размер выборки.
- Проверьте пороги
min_idfиmax_distanceв конфигурации. - Уменьшите жёсткость диапазонов дат, добавив
date_range: "2023-01-01..2026-12-31". - Увеличьте
knn_top_kс 10 до 20, чтобы вернуть более широкий набор кандидатов.
Как настроить параметры фильтрации в конфигурации Manticore Search?
Настройка фильтрации происходит в файле manticore.conf в секции index и searchd. Пример конфигурации приведён ниже.
index my_index {
type = rt;
path = /var/lib/manticore/my_index;
morphology = stem_en;
sql_query_pre = SELECT id FROM docs WHERE status = 'active' AND price <= 500000 AND created_at BETWEEN '2022-01-01' AND '2026-12-31';
knn = true;
knn_top_k = 15;
}
- Укажите
sql_query_preдля предвыборки нужных записей. - Задайте
knn_top_kв зависимости от требуемой глубины поиска. - Оптимизируйте
morphologyпод ваш язык, например, русский —stem_ru.
Какие типичные ошибки при настройке фильтрации и как их избежать?
Самая распространённая ошибка — задать слишком строгие условия, из‑за чего KNN получает слишком малый набор кандидатов.
- Не используйте абсолютные ограничения
price > 0без учёта инфляции; вместо этого задайте диапазонprice BETWEEN 1000 AND 500000. - Проверьте, что даты указаны в формате
YYYY‑MM‑DD, иначе система может интерпретировать их неверно. - Не забывайте перезапускать сервис
searchdпосле изменения конфигурации, иначе изменения не вступят в силу.
Воспользуйтесь бесплатным инструментом Manticore Config Generator на toolbox-online.ru — работает онлайн, без регистрации.
Теги