2013-06-10 3 views
0

Имеется файловая система с тысячами и тысячами PDF-файлов, которую мне нужно индексировать Solr (с Lucidworks).Как заставить Solr следовать ссылкам при разборе файла «Solr XML», чтобы индексировать результаты?

У меня есть XML-файл, содержащий данные, соответствующие каждому. XML содержит идентификатор, некоторые простые метаданные и URL-адрес соответствующего PDF-файла в файловой системе.

В настоящее время я могу отформатировать XML таким образом, чтобы Solr читал его и индексировал все необходимые мне метаданные, включая URL-адрес PDF-файла.

Я хотел бы, чтобы Solr, поскольку он разбирает файлы, фактически следует за URL-адресом и индексирует данные PDF с данными и вместе с метаданными, поставляемыми XML. Это возможно?

ответ

1

Ваш лучший выбор (на чистом Solr), вероятно, будет DataImportHandler с вложенными объектами.

Внешний процессор будет XPathEntityProcessor, и в этом случае вы можете установить TikaEntityProcessor с соответствующим источником данных. Используйте переменные для создания/передачи URL-адреса для внутреннего объекта.

Не забывайте отмечать внешний объект (XPath) как rootEntity = false, чтобы гарантировать, что документы Solr создаются для внутренних объектов.

+0

Отлично, спасибо. Я прочитаю об этом. На следующей неделе я собираюсь на тренировку Solr, так что, похоже, это поможет мне. Есть ли способ «чистого Solr» сделать это, что было бы проще? Другой вопрос: если «rootEntity = true» делает полный текст проанализированного PDF-документа частью документа, на который он ссылается? Потому что я думаю, что именно этого я и хочу. – Offlein

+1

Вы всегда можете проанализировать свои XML-файлы за пределами Solr на выбранном вами языке и использовать соответствующий Solr Client/Langauge Binding - http://wiki.apache.org/solr/IntegratingSolr для обновления индекса. Я часто делаю это чаще, чем использование DataImportHandler. –

+1

Корневой объект должен быть тем, который вы хотите сохранить Solr. Итак, если у вас есть XML-метаданные и некоторые ссылки в формате PDF, у вас есть XML как rootEntity = true (или, более конкретно, любые сущности над XML, такие как rootEntity = false). Просто будьте осторожны, если у вас есть несколько PDF-файлов в одном XML, потому что они все будут отображаться в одно и то же поле. Другие варианты включают в себя запись своего настраиваемого Transformer, который получает файлы PDF и вводит их таким образом. Или написать SolrJ клиент, который делает все за пределами. Всегда есть много способов сделать это. –