インターネット上に例がないため、私は最終的に使用したものを投稿すると思いました
<?xml version="1.0" encoding="utf-8"?>
<result>
<dataCollection func="chunked">
<data info="test" info2="test" />
<data info="test" info2="test" />
<data info="test" info2="test" />
<data info="test" info2="test" />
<data info="test" info2="test" />
<data info="test" info2="test" />
<data hasmore="true" nexturl="http://server.domain.com/handler?start=0&end=1000000000&page=1&pagesize=10"
</dataCollection>
</result>
次のページにさらにあることを指定し、次のページへのURLを提供することを使用していることに注意することが重要です。これは、DataImportHandlersのSolrドキュメントと一致しています。ドキュメントには、ページ付けされたフィードがシステムにさらに多くの情報があり、次のバッチを取得する場所を通知する必要があると指定されていることに注意してください。
<dataConfig>
<dataSource name="b" type="URLDataSource" baseUrl="http://server/" encoding="UTF-8" />
<document>
<entity name="continue"
dataSource="b"
url="handler?start=${dataimport.request.startrecord}&end=${dataimport.request.stoprecord}&pagesize=100000"
stream="true"
processor="XPathEntityProcessor"
forEach="/result/dataCollection/data"
transformer="DateFormatTransformer"
connectionTimeout="120000"
readTimeout="300000"
>
<field column="id" xpath="/result/dataCollection/data/@info" />
<field column="id" xpath="/result/dataCollection/data/@info" />
<field column="$hasMore" xpath="/result/dataCollection/data/@hasmore" />
<field column="$nextUrl" xpath="/result/dataCollection/data/@nexturl" />
</entity>
</document>
$hasMoreフィールドと$nextUrlフィールドに注意してください。タイムアウトを設定することをお勧めします。また、ページサイズを指定できるようにすることをお勧めします(最適な処理速度を得るためのtweeking設定に役立ちます)。クアッドコアXeonプロセッサと32GBのRAMを搭載したシングルサーバーでマルチコア(3)solrインスタンスを使用して、1秒あたり約12.5Kレコードのインデックスを作成しています。
結果をページ分割するアプリは、データを格納するSQLサーバーと同じシステムを使用します。また、最終的にsolrサーバーの負荷を分散するときに構成の変更を最小限に抑えるために、開始位置と停止位置を渡します。