使用Solr 3.6为每个实体行运行嵌套的CachedSqlEntityProcessor?

时间:2012-05-07 12:56:39

标签: solr dataimporthandler

我刚从Solr 3.4升级到Solr 3.6;我对两个版本使用相同的data-import.xml。导入功能正常使用3.4。

我正在使用嵌套实体来获取与每个文档关联的作者,而我正在使用CachedSqlEntityProcessor来避免在数据库中出现不合理的次数。但是,在索引时,Solr索引非常缓慢,并且似乎正在为每个文档获取DB中的所有作者。指数应为~500兆;当它达到~6gigs时,我中止了索引。如果我在下面注释掉嵌套的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>

0 个答案:

没有答案