Какая программа лучше всего подходит для индексации Java? - PullRequest
1 голос
/ 02 июля 2010

Я ищу библиотеку индексации ключевых слов для Java.Я нашел Lucene в поиске Google.Я думаю, что это очень популярная библиотека, но мне просто интересно, является ли она лучшей (с точки зрения быстродействия) библиотекой индексации (конечно, она может быть субъективной, но ваше мнение должно быть достаточно хорошим для начинающего, как я)?Достаточно ли хорош пример на этом сайте http://snippets.dzone.com/posts/show/4020, или у вас есть лучшая рекомендация?Заранее спасибо.

Ответы [ 4 ]

2 голосов
/ 02 июля 2010

Мы протестировали Lucene (кроме версии .Net) с полнотекстовым поиском MSSQL. Это довольно сложное сравнение, поскольку обе системы обеспечивают индексацию несопоставимым образом, но мы делаем это для четко определенной задачи - индексировать некоторый продукт с несколькими текстовыми полями (чтобы поля имели разный вес в результатах поиска) и обеспечивать поиск пользователей по этим продуктам.

Lucene выигрывает, потому что мы имеем полный контроль над составным запросом, решаем, какие индексы находятся в памяти, а какие хранятся в файловой системе, мы не были ограничены языковым пакетом (MSSQL FTS имеет ограниченный список поддерживаемых языков). Lucene позволяет нам использовать словарь нестатических шумовых слов (для нескольких категорий продуктов мы использовали различный набор шумов).

Так что трудно говорить о чистой производительности, но богатый функционал Lucenr открывает много возможностей для оптимизации.

1 голос
/ 02 июля 2010

Lucene - это замечательный инструмент поиска, но я также призываю вас взглянуть на Apache Solr , полноценный поисковый сервер, построенный с использованием Lucene, через интерфейс RESTful / HTTP.

0 голосов
/ 02 июля 2010

Базы данных, такие как MySQL, имеют интегрированный полнотекстовый индекс (см .: Создание индекса MySQL ), который вы можете использовать. Это довольно быстро, но не так легко настроить, как Lucene. Я попробовал это однажды и не получил ожидаемых результатов (тем более, что включенный токенизатор не может быть заменен так же легко, как с Lucene).

Другой альтернативой может быть использование простой таблицы базы данных, где у вас есть один столбец с индексными терминами, а другой указывает на список проводок (все документы, содержащие термин). Мой коллега так поступает и говорит, что оценивал производительность по сравнению с Lucene, и в результате база данных стала намного быстрее.

Однако в заключение я должен сказать, что всякий раз, когда я пробовал какую-то другую технологию, я довольно быстро возвращался в Lucene. Документация - одна из лучших, которые я когда-либо читал, и конфигурация настолько проста, насколько она обширна.

0 голосов
/ 02 июля 2010

Программное обеспечение для управления контентом Alfresco должно принимать тонны документов как можно быстрее, поэтому я думаю, что используемый ими индексатор - один из самых быстрых, которые они могли найти.
Да, они используют Lucene.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...