Dataconfig - 实体中的子实体数量是否有限制?

时间:2013-06-19 08:59:13

标签: solr classnotfoundexception dataimporthandler

我遇到了这个奇怪的问题。

在我的dataconfig文件中,我有一个根实体和其中的15个其他子实体。如果我尝试执行完全导入,则会发生以下错误。

错误日志:

Caused by: org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to execute query: select fruitName from fruits     where id = '2'      Processing Document # 1
    at org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow(DataImportHandlerException.java:71)
    at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.<init>(JdbcDataSource.java:252)
    at org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:209)
    at org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:38)
    at org.apache.solr.handler.dataimport.SqlEntityProcessor.initQuery(SqlEntityProcessor.java:59)
    at org.apache.solr.handler.dataimport.SqlEntityProcessor.nextRow(SqlEntityProcessor.java:73)
    at org.apache.solr.handler.dataimport.EntityProcessorWrapper.nextRow(EntityProcessorWrapper.java:243)
    at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:472)
    at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:498)
    at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:411)
    ... 5 more
Caused by: java.lang.ClassNotFoundException: Unable to load null or org.apache.solr.handler.dataimport.null
    at org.apache.solr.handler.dataimport.DocBuilder.loadClass(DocBuilder.java:899)
    at org.apache.solr.handler.dataimport.JdbcDataSource$1.call(JdbcDataSource.java:159)
    at org.apache.solr.handler.dataimport.JdbcDataSource$1.call(JdbcDataSource.java:127)
    at org.apache.solr.handler.dataimport.JdbcDataSource.getConnection(JdbcDataSource.java:362)
    at org.apache.solr.handler.dataimport.JdbcDataSource.access$200(JdbcDataSource.java:38)
    at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.<init>(JdbcDataSource.java:239)
    ... 13 more
Caused by: java.lang.NullPointerException
    at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:768)
    at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:385)
    at org.apache.solr.handler.dataimport.DocBuilder.loadClass(DocBuilder.java:889)
    ... 18 more

如果我在错误日志中对我的数据库执行查询,我没有发现任何错误。 我尝试交换实体的顺序。每次在错误日志中,我都会找到最后一个实体的查询。

但如果我删除一个随机实体,则完全导入成功。

这是由于对子实体/字段数量施加了某种限制吗? 为什么要尝试加载类“null”?我错过了什么吗?

非常感谢任何帮助!

修改

我的dataconfig.xml布局:

<dataconfig>
<document>

<entity name = "outer_entity" query="select id from outerTable">

   <entity name = "subEntity1" query="select value1 from subEntity1">
   </entity>

   <entity name = "subEntity2" query="select value2 from subEntity2">
   </entity>

   ..........

   <entity name = "subEntity14" query="select value14 from subEntity14">
   </entity>

   <entity name = "subEntity15" query="select value15 from subEntity15">
   </entity>

</entity>

</document>
</dataconfig>

1 个答案:

答案 0 :(得分:0)

我没有遇到子实体的限制。但是在你的情况下,它看起来很明显,因为如果删除1个实体它就可以了

我建议您以某种方式加入查询或使用视图。