Solr的:FileListEntityProcessor正在执行子实体多次(Solr: FileL

2019-10-29 14:19发布

我已经配置一个DIH-import.xml如下所示。 该FileListEntityProcessor走过一些文件夹,然后执行XPathEntity和DB-实体为每个文件。

当我执行完全导入的〜30.000文件,进口了近3小时。 回到DIH-调试控制台它表明我,因为这是第一个找到的FILE 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>

编辑发现了这个问题,在谷歌,但没有答案有两种: http://osdir.com/ml/solr-user.lucene.apache.org/2010-04/msg00138.html


和其他编辑

更新Solr的从3.6到4.1,并执行的进口国。 问题仍然存在,只是不会有2N(2,4,6,8,..)的子实体调用了,但只有ñ。

Answer 1:

如果主要问题是对数据库的命中数,当您使用JdbcDataSource,你可以尝试切换到CachedSqlEntityProcessor 。

您可能还需要跟踪SOLR-2943 ,因为他们想要的就是为了解决你的问题,希望对即将到来的Solr 4.2



文章来源: Solr: FileListEntityProcessor is executing sub entities multiple times