Я пытаюсь использовать DIH для загрузки наших данных SOLR.
Я сделал это на других ядрах / установках SOLR без проблем, но по какой-то причине я не могу заставить его работать в этой установке .
Основные данные (медиа - в основном видео) (из основного запроса DIH) загружаются просто отлично. Вторичный запрос (вложенный объект), который должен загружать записи «один ко многим» для тегов видео, не заполняет многозначные поля в SOLR. Я не вижу сообщений об ошибках (по крайней мере, не могу найти их в журналах или где-либо еще), поэтому я не уверен, в чем дело.
Единственное, что меня интересует, это то, что «join» (предложение where во вложенном запросе) не использует поле первичного ключа - но я не думаю, что это должно иметь значение. Пожалуйста, исправьте меня, если я ошибаюсь.
Вот упрощенная копия конфигурации DIH:
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://x.x.x.x;databaseName=media;"
user="xxx"
password="xxx"
batchSize="100" />
<document name="mediaContent">
<entity name="media" query="SELECT * FROM mediaContent" pk="mediaID">
<field column="mediaID" name="mediaID" />
<field column="mediaType" name="mediaType" />
<field column="videoID" name="videoID" />
<field column="videoTitle" name="videoTitle" />
<field column="videoDescription" name="videoDescription" />
<field column="videoStatusID" name="videoStatusID" />
<field column="videoPublished" name="videoPublished" />
<entity name="videoTags"
query="
SELECT tagID, tagTitle
FROM videoTags
WHERE videoID = '${mediaContent.videoID}'">
<field column="tagID" name="videoTagIDs" />
<field column="tagTitle" name="videoTagTitles" />
</entity>
</entity>
</document>
</dataConfig>
Многозначные элементы в файле управляемой схемы настроены согласно:
<field name="videoTagIDs" type="int" indexed="true" stored="true" required="false" multiValued="true" />
<field name="videoTagTitles" type="text" indexed="true" stored="true" required="false" multiValued="true" />
Обычно я бы использовал первичный ключ для объединения данных во втором запросе, но в этом случае, поскольку не весь контент является видео, а теги связаны только с видеоконтентом, я не являюсь используя поле PK. Вместо этого я использую поле videoID. Опять же, я не уверен, имеет ли это значение здесь или нет. Я получаю правильные данные, когда запускаю запросы в SQL.
Если у кого-то есть какие-либо предложения относительно того, как я могу отладить то, что происходит со вторичным запросом, или еще лучше, если кто-то видит что-то в моей конфигурации что я сделал не так, буду признателен за ваш отзыв.
Спасибо!
Билл