Solr 3.4 から Solr 3.6 にアップグレードしたところです。data-import.xml
両方のバージョンで同じものを使用しています。インポートは 3.4 で正常に機能しました。
ネストされたエンティティを使用して、各ドキュメントに関連付けられている作成者を取得しています。またCachedSqlEntityProcessor
、DB に無理な回数ヒットするのを避けるために使用しています。ただし、インデックスを作成するとき、Solr のインデックス作成は非常に遅く、ドキュメントごとに DB 内のすべての作成者を取得しているように見えます。インデックスは 500 MB 以下にする必要があります。〜6ギガに達したとき、インデックス作成を中止しました。以下のネストされたエンティティをコメントアウトするとauthor
、Solr は正常にインデックスを作成します。
明らかな何かが欠けていますか、それともバグですか?
<document name="documents">
<entity name="document" dataSource="production"
transformer="HTMLStripTransformer,TemplateTransformer,RegexTransformer"
query="select id, ..., from document">
<field column="id" name="id"/>
<field column="uid" name="uid" template="DOC${document.id}"/>
<!-- more fields .. -->
<entity name="author" dataSource="production"
query="select
cast(da.document_id as text) as document_id,
a.id, a.name, a.signature from document_author da
left outer join author a on a.id = da.author_id"
cacheKey="document_id"
cacheLookup="document.id"
processor="CachedSqlEntityProcessor">
<field name="author_id" column="id" />
<field name="author" column="name" />
<field name="author_signature" column="signature" />
</entity>
</entity>
</document>