Поисковая система на Java? - PullRequest
       2

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

10 голосов
/ 28 октября 2011
  1. Я пытаюсь создать поисковую систему, чтобы просто изучить и получить больше опыта в Java.

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

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

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

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

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

Ответы [ 8 ]

26 голосов
/ 28 октября 2011

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

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

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

5 голосов
/ 28 октября 2011

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

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

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

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

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

4 голосов
/ 28 октября 2011

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

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

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

3 голосов
/ 28 октября 2011

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

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

3 голосов
/ 28 октября 2011

... lucene и solr приходят на ум в отношении кода других людей.

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

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

2 голосов
/ 28 октября 2011

Apache Tika для извлечения метаданных .

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

...