TToolBox
💻
💻 dev
8 апреля 2026 г.6 мин чтения

Как настроить предварительную фильтрацию KNN в Manticore Search

Как настроить предварительную фильтрацию 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 — работает онлайн, без регистрации.
Поделиться:

Теги

#Manticore Search#KNN#фильтрация#поиск#оптимизация