#apache #solr #indexing #elasticsearch #information-retrieval
#apache #solr #индексирование #elasticsearch #поиск информации
Вопрос:
Я настраиваю систему поиска для каталога документов (такие типы файлов, как: MS Word, PDF, .txt, PowerPoint и т. Д.).
Каталог документов хранится локально в моей сети.
На моем компьютере запущен и запущен Apache Solr (панель администратора видна и доступна с порта локального хоста 8983).
Теперь мне нужно проиндексировать содержимое и названия документов в каталоге и сделать их доступными для поиска через мой сервер Solr.
Куда мне идти дальше? —Более конкретно—
- Существует ли технология индексации с открытым исходным кодом, которую мне нужно интегрировать, или Solr может индексировать документы самостоятельно?
- Как мне указать Solr для поиска конкретно в этом каталоге? (или, как правило, в каталоге на моем жестком диске / локальной сети)
Комментарии:
1. Solr не будет индексироваться сам по себе. Внешний процесс должен отправлять документы в Solr. Взгляните на Apache Nutch, это веб-сканер командной строки, но его можно настроить и для обхода локальной файловой системы (см. FAQ ).
2. Спасибо! Проведя еще несколько собственных исследований, я обнаружил, что Nutch является предпочтительным сканером для Solr, хотя я еще не настроил его.
3. Как оказалось, двоичные загрузки solr поставляются с несколькими технологиями, которые позволяют индексировать вручную — с использованием ExtractingRequestHandler и команд командной строки java -Dauto -jar post.jar <имя файла> и java -Dauto -Drecursive -jar post.jar <имя папки>
Ответ №1:
Вы можете использовать ячейку Solr (то, что раньше называлось ExtractingRequestHandler)
Он построен поверх проекта Apache Tika.
О ячейке Solr:
Ключевые понятия
При использовании Solr Cell framework полезно иметь в виду следующее:
- Tika автоматически попытается определить тип входного документа (Word, PDF, HTML) и соответствующим образом извлечь содержимое. Если хотите, вы можете явно указать MIME-тип для Tika с параметром stream.type .
- Tika работает, создавая поток XHTML, который он передает в обработчик содержимого SAX. SAX — это общий интерфейс, реализованный для множества
различных анализаторов XML. Для получения дополнительной информации см.
http://www.saxproject.org/quickstart.html .- Затем Solr реагирует на события SAX от Tika и создает поля для индексации.
- Tika создает метаданные, такие как заголовок, тема и автор, в соответствии со спецификациями, такими как DublinCore. См
http://tika.apache.org/1.5/formats.html для поддерживаемых типов файлов.- Tika добавляет весь извлеченный текст в поле содержимого. Это поле определено как «сохраненное» в schema.xml . Он также копируется в текстовое поле с помощью правила copyField.
- Вы можете сопоставить поля метаданных Tika с полями Solr. Вы также можете увеличить эти поля.
- Вы можете передавать литералы для значений полей. Литералы переопределяют значения, проанализированные Tika, включая поля в объекте метаданных Tika, поле содержимого Tika и любые поля «захваченного содержимого».
- Вы можете применить выражение XPath к Tika XHTML, чтобы ограничить создаваемый контент.
На вики-странице Solr Cell есть руководство и информация о конфигурации.