#java #search-engine
#java #поисковая система
Вопрос:
-
Я пытаюсь создать поисковую систему, просто чтобы учиться и получать больше опыта в Java.
Я намереваюсь хранить на сервере около 100 файлов, представляющих собой смесь html, xml, doc, txt, и для каждого файла иметь метаданные.
ПОЭТОМУ, когда я ищу ключевое слово, оно должно отображать файл с его мета-описанием, например, Google.
Мой вопрос в том, можете ли вы, помимо html, добавлять метаданные в любые другие форматы файлов, чтобы отображалось мета-описание.
-
Не могли бы вы указать мне на поисковую систему Java, которая может выполнять поиск в форматах файлов (txt, html) и отображать результат.
Я работаю над своим собственным кодом для этого, но хотел бы взглянуть на код других людей для получения некоторой помощи?
Ответ №1:
Lucene — это каноническая поисковая система Java.
Для добавления документов из различных источников, взгляните на Apache Tika и для полномасштабной системы с сервисными / веб-интерфейсами, solr.
Lucene позволяет связывать произвольные метаданные со своими документами. Tika автоматически отбирает метаданные из различных форматов.
Ответ №2:
1) Мой вопрос: помимо html, можете ли вы добавить метаданные в любые другие форматы файлов, чтобы отображалось мета-описание.
В общем случае вы бы использовали базу данных и хранили там метаданные вместе с документом. Затем вы должны выполнить поиск по ключевым словам, используя запрос к базе данных (возможно, используя SQL like или ilike).
Файлы могут либо храниться на жестком диске, используя только пути в БД, либо помещаться в базу данных в виде CLOB или BLOB, в зависимости от того, есть ли у вас текстовые или двоичные документы.
2) Могли бы вы указать на поисковую систему Java, которая может выполнять поиск в форматах файлов (txt, html) и отображает результат.
Попробуйте Apache Lucene.
Ответ №3:
Посмотрите на apache nutch
Apache Nutch is an open source web-search software project.
Nutch строится поверх lucene / solr для индексации, tika для синтаксического анализа документов и добавляет собственный веб-сканер.
Ответ №4:
Действительно хороший Lucene. Существует множество плагинов (которые позволяют, например, читать из .doc), поддерживают несколько языков и множество алгоритмов (например, расстояние Левенштейна)
Ответ №5:
- В настоящее время Google полностью игнорирует мета-описания, потому что они либо злоупотреблялись, либо не заполнялись значимыми значениями
- Lucene и / или Solr могут делать то, что вы хотите, взгляните.
- 100 файлов — это очень мало, у вас не возникнет проблем с управлением этим объемом данных любым удобным для вас способом, если это для упражнений.
Ответ №6:
Ответ №7:
Вам придется использовать несколько библиотек. Прежде всего, как многие люди упоминали ранее, вы можете использовать Lucene для выполнения фактического поиска. Однако Lucene обрабатывает только обычный текст, поэтому вам нужно извлечь его из индексируемых файлов. Для этого вы могли бы использовать Apache Tika.
Чтобы начать, вам, вероятно, следует купить книгу Lucene in Action 2nd edition. Большинство примеров там все еще актуальны. Если вы хотите быть скрягой, вы также можете просто посмотреть предоставленный исходный код на этой странице.
Ответ №8:
Apache Tika для извлечения метаданных.
Apache Tika Инструментарий Apache Tika представляет собой лицензированный инструмент с открытым исходным кодом ASFv2 для извлечения информации из цифровых документов. Tika позволяет поисковым системам, системам управления контентом и другим приложениям, работающим с различными видами цифровых документов, легко обнаруживать и извлекать метаданные и содержимое из всех основных форматов файлов.