Поисковая система в Java?

  • Я пытаюсь создать поисковую систему, чтобы узнать и получить больше опыта в Java.

    Мое намерение состоит в том, чтобы хранить около 100 файлов на сервере, смесь html, xml, doc, txt и для каждого файла для метаданных.

    SO, когда я ищу ключевое слово, он должен отображать файл с его мета-описанием, например Google.

    Мой вопрос, помимо html, может добавить метаданные в любые другие форматы файлов, чтобы было показано мета-описание.

  • Можете ли вы указать мне на поисковую машину Java, которая может искать в форматах файлов (txt, html) и отображать результат.

    Я работаю над своим кодом для этого, но хотел бы посмотреть на код других людей для некоторой помощи?

Ответ 1

Lucene - это каноническая поисковая система Java.

Чтобы добавить документы из разных источников, посмотрите Apache Tika и полнофункциональную систему с сервисными/веб-интерфейсами, solr.

Lucene позволяет связать любые метаданные с его документами. Tika автоматически отбирает метаданные из разных форматов.

Ответ 2

1) Мой вопрос, кроме html, вы можете добавить метаданные в любые другие форматы файлов, чтобы было показано мета-описание.

В общем, вы должны использовать базу данных и хранить метаданные вместе с документом. Затем вы выполняете поиск по ключевым словам с использованием запроса к базе данных (возможно, с использованием SQL или ilike).

Файлы могут быть либо сохранены на жестком диске с помощью только путей в БД, либо помещены в базу данных как CLOB или BLOB, в зависимости от того, есть ли у вас текстовые или двоичные документы.

2) Можете ли вы указать на поисковую машину Java, которая может искать в форматах файлов (txt, html) и отображать результат.

Попробуйте Apache Lucene.

Ответ 3

Действительно хорошо Lucene. Существует много плагинов (что позволит, например, читать из .doc), поддерживать несколько языков и множество алгоритмов (например, расстояние Левенштейна)

Ответ 4

Посмотрите apache nutch

Apache Nutch is an open source web-search software project.

Nutch строит поверх lucene/solr для индексирования, tika для анализа документов и добавляет свой собственный веб-искатель.

Ответ 5

  • Google игнорирует полностью метаописания в настоящее время, поскольку он был либо злоупотреблен, либо не был заполнен значительными значениями
  • Lucene и/или Solr может делать то, что вы хотите, посмотрите.
  • 100 файлов - это очень небольшая сумма, у вас не будет проблем с управлением этим количеством данных любым способом, если это нужно для упражнений.

Ответ 6

... lucene и solr приходят на ум, поскольку речь идет о других кодексах людей.

Ответ 7

Вам нужно будет использовать несколько библиотек. Прежде всего, как упоминалось выше, вы можете использовать Lucene для фактического поиска. Однако Lucene обрабатывает только обычный текст, поэтому вам нужно извлечь его из файлов, которые вы индексируете. Для этого вы можете использовать Apache Tika.

Чтобы начать, вы должны, вероятно, купить книгу Lucene in Action 2nd edition. Большинство примеров там все еще актуальны. Если вы хотите быть дешевым, вы также можете просто посмотреть предоставленный исходный код на этой странице.

Ответ 8

Apache Tika, чтобы извлечь метаданные.

Apache Tika Инструментарий Apache Tika - это открытый с открытым исходным кодом ASFv2 инструмент для извлечения информации из цифровых документов. Тика позволяет поисковые системы, системы управления контентом и другие приложения, которые работать с различными видами цифровых документов, чтобы извлекать метаданные и содержимое из всех основных форматов файлов.