2009-11-21 2 views
2

Я ищу, чтобы добавить полное текстовое индексирование в настольное приложение Linux, написанное на C++. Я думаю, что самый простой способ сделать это - вызвать существующую библиотеку или полезность. This article рассматривает различные утилиты с открытым исходным кодом, доступные для настольных компьютеров Gnome и KDE; метатрекер, recoll и stigi все написаны на C++, поэтому каждый из них кажется разумным. Но я не могу найти никакой заметной документации о том, как использовать их в качестве библиотек или через API. Вместо этого я мог бы использовать что-то вроде Clucene или Xapian, которые являются универсальными полнотекстовыми библиотеками индексирования. Они кажутся более простыми, но если бы я их использовал, мне пришлось бы реализовать свой собственный демонизатор-демоник, который был бы непривлекательным.Какой инструмент индексирования полного текста Linux имеет хороший C++ API?

Кроме того, Xesam, по-видимому, является последним, есть ли у кого-нибудь доказательства того, что он работает?

Итак, есть ли у кого-нибудь опыт использования каких-либо приложений или библиотек? Как вы его использовали и какая документация была полезной?

+0

lucene предоставляется в Qt, но нет публичного API :( – dzen

ответ

2

Я использовал CLucene, о котором вы упомянули (а также Lucene.NET), и нашел, что это очень хорошо.

+0

Что вы использовали для этого? –

+0

Коммерческий проект, включающий автозаполнение в текстовых полях ввода. Не веб-приложение. –

0

Существует также Strigi, который AFAIK работает с Xesam и по умолчанию используется в KDE.

0

После дальнейшего осмотра я нашел и работал с Recol. Он считает, что у него есть лучший интерфейс C++ для полнотекстовой поисковой системы, в данном случае Xapian.

Важно понимать, что clucene и Xapian - это очень сложные библиотеки, предназначенные в первую очередь для многопользовательских серверных приложений. Сокращение их до уровня, подходящего для клиентской системы, непросто. Если я правильно помню, у Strigi есть сложный, чистый интерфейс C, который не адаптирован.

Clucene также не похоже, что активно поддерживается в настоящее время, и Xapian, похоже, поддерживается. Но дело в том, что recol, который позволяет вам индексировать определенные файлы без массивной массивной настройки, которую требует необработанный Xapian или clucene, - создание вашего собственного «стеблевого» набора обычно нежелательно и т. Д.