Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 2, 2012 01:38:34

cpu
От:
Зарегистрирован: 2011-12-29
Сообщения: 58
Репутация: +  1  -
Профиль   Отправить e-mail  

Выбор внешней open source-based поисковой машины.

Итак, прошу уважаемое коммьюнити помочь с разрешением следующей проблемы. Описываю возможно подробным образом, дабы избавить заранее тему от флейма.

Вводная:
1. Имеется сервис;
2. Сервис использует в своей работе python и postgresql;
3. Каждый клиент сервиса имеет свою схему данных;
4. Схема данных довольно непростая.
Пробовали решать проблему по всякому, и интенсивно (расширенный стоп-лист, игрались с типами индексов в ПЖ) и экстенсивно (сейчас работает система блокировок, но по причинам уебанской архитектуры фреймворка, на ктором базируется сервис, этот способ работает не всегда).

Нужно производить быстрый поиск во всем этом хозяйстве. Поставлена задача выбрать внешнюю open source-based поисковую машину. Пока выбираю между Apache Lucene и Sphinx.
От данных машинок требуется следующий функционал:
1. Много индексов (требование вытекает из п3, то есть, каждый клиент имеет свой собственный набор данных и, соответственно свой поисковый индекс). Из этого требования следует также:
1.1. Создание и подключение нового индекса на лету, т.е. каждый раз когда создается схема для нового клиента надо создавать и индекс без перезапуска демона.
1.2. Аналогично и с удалением схемы.
– Вариант с патчем конфига поисковой машины для каждого клиента не очень желателен, ибо, опять-же, перезапуск демона.
2. Удаление и обновление записей индекса на лету, без перезапуска демона.
3. Как было упомянуто в п.4, у сервиса имеется довольно непростая схема данных. Соответственно, как можно произвести параллельную выборку по полям нескольких таблиц в БД через JOIN одновременно с поиском по поисковому индексу машины?
4. Сколько примерно жрет места на диске сам файл индекcа?
5. Требуется ли ему что-то вроде VACUUM? (читай, надо ли перезапускать демон для совершения служебных операций)
6. Как изменяется скорость чтения при существенном увеличенни количества данных, линойно/экспотенциально? (Если записей в БД для одной схемы, скажем, 20 млн по несколько десятков кб в каждой)
7. Производится ли индексирование html-документов или нужна предобработка?
8. Также время на перезапуск демона поисковой машины должно быть минимальным.



Отредактировано cpu (Ноя. 2, 2012 01:40:24)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version