Я настроил dih-import.xml, как показано ниже. FileListEntityProcessor
просматривает некоторые папки, а затем запускает XPathEntity и DB-Entity для каждого файла.Solr: FileListEntityProcessor выполняет вспомогательные объекты несколько раз
Когда я выполнил полный импорт для ~ 30.000 файлов, импорт занял почти 3 часа. Вернувшись к консоли DIH-debug, он показал мне, что для первого найденного файла было сделано 2 db-звонка, для 2-го 4, 6, 8, ...
google ничего мне не показывал эта тема, поэтому я надеюсь, для вас :)
заранее спасибо
<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
<dataSource
name="cr-db"
jndiName="xyz"
type="JdbcDataSource" />
<dataSource
name="cr-xml"
type="FileDataSource"
encoding="utf-8" />
<document name="doc">
<entity
dataSource="cr-xml"
name="f"
processor="FileListEntityProcessor"
baseDir="/path/to/xml"
filename="*.xml"
recursive="true"
rootEntity="true"
onError="skip">
<entity
name="xml-data"
dataSource="cr-xml"
processor="XPathEntityProcessor"
forEach="/root"
url="${f.fileAbsolutePath}"
transformer="DateFormatTransformer"
onError="skip">
<field column="id" xpath="/root/id" />
<field column="A" xpath="/root/a" />
</entity>
<entity
name="db-data"
dataSource="cr-db"
query="
SELECT
id, b
FROM
a_table
WHERE
id = '${f.file}'">
<field column="B" name="b" />
</entity>
</entity>
</document>
</dataConfig>
EDIT нашел проблему в гугле, но ответа там либо: http://osdir.com/ml/solr-user.lucene.apache.org/2010-04/msg00138.html
и другой редактировать
обновленный Solr от 3,6 до 4,1 и казнили импортера. Проблема все еще существует, но только 2n (2, 4, 6, 8, ..) вызовы для субингументов больше, но только n.
Просто уточнение? Вы пытаетесь сделать один документ Solr для каждого файла? Что означало бы, что у вас есть только одна/корневая запись? Это верно? –
Это правильно. Один документ Solr должен содержать 'id',' A' и 'B', который работает как ожидалось, просто не в нужное время и с возможностью большой нагрузки на db – harpax