以下に示すように、dih-import.xml を構成しました。はFileListEntityProcessor
、いくつかのフォルダーをウォークスルーし、各ファイルに対して XPathEntity と DB-Entity を実行します。
約 30.000 個のファイルのフル インポートを実行したところ、インポートに 3 時間近くかかりました。DIH デバッグ コンソールに戻ると、最初に見つかったファイルに対して 2 つの db 呼び出しが行われ、2 番目のファイルでは 4、次に 6、8、..
グーグルはこの件について何も見せてくれなかったので、あなたに期待しています:)
前もって感謝します
<?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 はGoogleで問題を発見しましたが、そこにも答えはありません: http://osdir.com/ml/solr-user.lucene.apache.org/2010-04/msg00138.html
そして別の編集
solr を 3.6 から 4.1 にアップデートし、インポーターを実行しました。サブエンティティの呼び出しが 2n (2, 4, 6, 8, ..) ではなく、n 回しかないことだけが問題です。