Система полнотекстового поиска для декстопного проекта(Qt), какую выбрать?

Нужно к проекту на C++ (Qt) прикрутить полнотекстовый поиск по документам в различных форматах (doc, html, pdf и т.д.). Прочитал уже кучу статей по сравнению подобных систем (например, habrahabr.ru/post/30594/), но в итоге самую подходящую для себя определить не могу. Кандидаты: Sphinx, Lucene (CLucene) и Xapian.

Поставил Sphinx разобрался в базовых вещах довольно быстро. Запустил на тестовой базе все работает, но с запросами на английском, на русском пока какие-то проблемы с кодировками. Радует скорость индексирования и поиска; возможность реализации морфологии через soundex, а не только использование стемминга, т.е. если я правильно понимаю точность поиска для русского должна быть значительно выше, чем при использовании стемминга. Кстати, если кто-то использовал soundex поделитесь опытом, всели прошло гладко, выросла ли точность? Дельта-индекс удобно или нет при частом добавлении документов? Если использовать sphinx, то чем выдирать текст из pdf, Word/Exce и прочих?

Xapian хвалят за инкрементный индекс, прозрачно обновляемый параллельно с поиском. Пишут, что для приложений на С++ и требованиями к широким возможностям языка запроса он будет лучшим выбором. Ну и очень радует возможность обрабатывать файлы самых популярных форматов TXT, HTML, PHP, PDF, PostScript, OpenOffice/StarOffice, OpenDocument, Microsoft Word/Excel/Powerpoint.

Clucene — самый маловероятный кандидат. Вроде как нет морфологического поиска. Больших преимуществ перед первыми двумя системами не нашел, если не прав, поправьте меня.

Хотелось бы побольше всяких свистелок типа умного поиска, поиска с указанием расстояния, поиска с учетом синонимов и прочее.

У кого был опыт, подскажите, пожалуйста, на чем остановиться.
  • Вопрос задан
  • 4025 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы