Как нам создать простую поисковую систему, используя Lucene, Solr или Nutch?
Вопрос
Наша компания имеет тысячи документов в формате PDF. Как нам создать простую поисковую систему, используя Lucene, Solr или Nutch? Мы предоставим базовую веб-страницу на Java / JSP, где люди могут вводить слова и выполнять базовые и / или запросы, а затем показывать им ссылки на документы всех соответствующих PDF-файлов.
Решение
Ни один из проектов семейства Lucene не может обрабатывать PDF-файлы естественным образом, но есть полезные утилиты и хорошо написанные примеры того, как создавать свои собственные.
Lucene будет делать практически все, что вам нужно, но с точки зрения вашего времени, как сказал Тони, это накладные расходы. Тысячи документов на самом деле не так много , так что вам, возможно, удастся избежать более легкой альтернативы.
Тем не менее, я бы по-прежнему рекомендовал взглянуть на Solr - его намного, гораздо проще настроить, чем Lucene, имеет поддержку резервного копирования, репликации и т. д., а также отличный интерфейс JSON, который очень хорошо подошел бы для вашего варианта использования. : http://wiki.apache.org/solr/SolJSON
Другие советы
Мне повезло с lucene, но это не щелчок, установка и поиск, это требует немного работы.
Если вам нужно что-то, что вы можете загрузить, установить и выполнить поиск в течение 10 минут, посмотрите бесплатную версию Ominifind Yahoo Edition http : //omnifind.ibm.yahoo.net/ , он использует Lucene, но упакован таким образом, что он настроен и готов к запуску после установки - гораздо более простой способ попробовать Lucene.
Плагин Nutch + Lucene + Pdf, включенный в Nutch, - это ваше решение. Nutch позволяет вам анализировать PDF, включив плагин PDF. Р>
Lucene позволит вам индексировать просканированные и проанализированные данные, а у Nutch есть сервлет, который предоставляет вам интерфейс поиска.
Мы используем то же самое для наших внутренних сетей.
Google Search Appliance http://www.google.com/enterprise/gsa/ р>
Я думаю, вы хотите, чтобы система управляла вашим файлом PDF. Пожалуйста, попробуйте использовать систему dspace. Dspace - это цифровая библиотека, на основе которой поддерживается Lucene. www.dspace.org.
Ознакомьтесь с электронными печатными изданиями . Он включает в себя рабочий процесс для добавления новых документов, автоматически индексирует и миниатюры PDF-файлов и имеет довольно полные функции полнотекстового поиска. Он также может быть легко настроен и маркирован.
Зачем заново изобретать колесо. Опять же.
Ответить на такой широкий вопрос на этом форуме будет сложно. Я бы порекомендовал вам почитать книгу Lucene in Action , охватывает основы индексации и поиска довольно читабельным способом.
Учитывая ваше приложение, похоже, что Nutch и Solr, вероятно, не понадобятся. Поскольку все ваши документы доступны локально, Nutch, вероятно, не поможет. Solr может помочь вам управлять кластером поисковиков, если у вас высокая нагрузка на запрос, но Lucene обладает высокой производительностью и обрабатывает большие наборы документов очень масштабируемым образом.
Одна область, которая может потребовать много ваших усилий - это использование PDF. Можно индексировать документы PDF, и есть вклады Lucene для облегчения извлечения необработанных необработанных файлов текст из PDF-файлов , но в зависимости от документа качество результатов может отличаться. Часто контекст ключевого слова в документе PDF неясен из-за инструкций форматирования, и это может затруднить поиск по близости или показать контекст попадания.
Отличная бесплатная поисковая технология - IBM Yahoo! бесплатный поиск. Я не уверен, выполнили ли они планы по использованию Lucene под прикрытием, но он по-прежнему остается одним из самых замечательных способов использования бесплатных технологий поиска. Я считаю, что он обрабатывает до 500 тыс. Документов, а также поддерживает PDF и другие нетекстовые форматы. Графический пользовательский интерфейс; легко настроить результаты поиска и базовую аналитику поиска. Базовый тезаурус и мощный API, так что вы можете делать практически все, что хотите, если результаты из коробки вам не по вкусу. Мы предложили это ряду клиентов, у которых было менее полумиллиона документов, и им это нравится.
Если у вас есть сервер Linux, вы можете использовать Beagle для их индексации, а затем просто используйте функцию поиска, которая идет с ним. Он имеет (экспериментальный) интерфейс веб-поиска, и его также можно подключить к окну поиска FireFox.
Он автоматически индексирует файлы по мере их включения, и я подозреваю, что вам будет гораздо эффективнее улучшать или исправлять beagle, чем писать свой собственный интерфейс поиска в Lucene.
Имея (imho) явное преимущество на Mac, я использую SearchLight на несколько старшей G5. красивый веб-интерфейс для внимания, встроенная в Mac OS служба индексирования.