Индексирование XML-документов структурированных наборов данных в Solr/lucene
Я пытаюсь использовать Solr для индексирования небольшого набора данных XML-документов, пример XML здесь:
<?xml version='1.0' encoding='utf-8'?>
<doc xmin = 0, xmax = 9.233174603174604>
<title>John speech</title>
<description>shjshksjcjslkclsjk </description>
<uploaded_time>03/14/2010 08:44 PM</uploaded_time>
<likes>84906</likes>
<tier name="words">
<trans xmin="0.0" xmax="0.8325873015873018">silent</trans>
<trans xmin="0.8325873015873018" xmax="1.9564232192938984">Hi</trans>
<trans xmin="1.9564232192938984" xmax="3.874938884654082">I</trans>
<trans xmin="3.874938884654082" xmax="4.940780920965295">am</trans>
<trans xmin="4.940780920965295" xmax="6.495133890585815">John</trans>
:
:
</tier>
<doc>
Является ли этот тип вложенных тегов XML индексируемым Solr? Я попробовал DataImportHandler с solrconfig.xml! и это xml-data-config.xml! (не уверен в его правильности, пока не имею четкого понимания того, как обращаться с вложенным xml, особенно для неопределенной длины уровня)
Но, пытаясь сделать импорт данных, я получаю:
Индексирование... Запросов: 0, Получено: 0, Пропущено: 0, Обработано: 0
и он хранится долгое время, хотя мой небольшой набор данных содержит только несколько коротких файлов.
Чего мне не хватает??
1 ответ
В моих файлах конфигурации было много ошибок. Основная проблема заключалась в том, что мне пришлось использовать "XPathEntityProcessor" в качестве процессора для объекта источника данных XML-файлов вместо TikaEntityProcessor. Для неопределенной длины поля, такого как "trans", оно должно быть добавлено с помощью multiValued="true", а загруженное время должно быть в формате ISO-8601 даже после того, как я добавил DateFormatTransformer к объекту.