我已经配置了dih-import.xml,如下所示。 FileListEntityProcessor
遍历某些文件夹,然后为每个文件执行XPathEntity和DB-Entity。
当我执行〜30.000文件的完全导入时,导入花了将近3个小时。回到DIH-debug控制台,它告诉我,对于第一个发现2个db调用的文件,第二个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,..)调用,只有n。
答案 0 :(得分:1)
如果主要问题是使用JdbcDataSource时数据库上的命中数,您可以尝试切换到CachedSqlEntityProcessor。
您可能还想跟踪SOLR-2943,因为他们想要准确解决您的问题,希望即将推出的Solr 4.2