无法加载EntityProcessor实现

时间:2013-02-19 06:39:57

标签: java solr dih

我正在尝试使用mongo作为solr的数据源,所以我跟随James让他的DIH在我的solr应用程序中使用它,我添加了以下内容我的lib文件夹

  1. 的solr-dataimporthandler-1.4.1
  2. 的solr-蒙戈-进口商-1.0.0
  3. nlog4j-1.2.17 //因为它要求LoggerFactory类
  4. 蒙戈-2.10.1
  5. 在我的data-config文件中只包含以下内容:

    <?xml version="1.0"?>
    <dataConfig>
        <dataSource name="MyMongo" type="MongoDataSource" database="tracker" />
        <document name="hits">
             <entity processor="MongoEntityProcessor"
                     query="{}"
                     collection="hits"
                     datasource="MyMongo"
                     transformer="MongoMapperTransformer" >
                 <field column="_id"           name="_id"       mongoField="_id"/>
             </entity>
         </document>
    </dataConfig>
    

    当我尝试进行完全导入时,会抛出异常,如下所示:

    SEVERE: Full Import failed:java.lang.RuntimeException: java.lang.RuntimeException: org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to load EntityProcessor implementation for entity:19099085523711 Processing Document # 1
    at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:264)
    at org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:375)
    at org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:445)
    at org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:426)
    Caused by: java.lang.RuntimeException: org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to load EntityProcessor implementation for entity:19099085523711 Processing Document # 1
        at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:621)
        at org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:327)
        at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:225)
        ... 3 more
    
    Caused by: org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to load EntityProcessor implementation for entity:19099085523711 Processing Document # 1
        at org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow(DataImportHandlerException.java:72)
        at org.apache.solr.handler.dataimport.DocBuilder.getEntityProcessor(DocBuilder.java:915)
        at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:635)
        at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:619)
        ... 5 more
    Caused by: java.lang.ClassCastException: org.apache.solr.handler.dataimport.MongoEntityProcessor cannot be cast to org.apache.solr.handler.dataimport.EntityProcessor
        at org.apache.solr.handler.dataimport.DocBuilder.getEntityProcessor(DocBuilder.java:912)
        ... 7 more
    

    任何人都可以告诉我我在弄什么,以及如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

问题的核心是:

  

引起:java.lang.ClassCastException:   org.apache.solr.handler.dataimport.MongoEntityProcessor无法强制转换   to org.apache.solr.handler.dataimport.EntityProcessor

我怀疑你没有和他一样使用相同版本的Solr。基于罐子,您似乎使用Solr 1.4.1。基于GitHub的时间戳,整合项目已有6个月的历史,可能会使用更新的Solr(3.6或更少 - 4 +)。

除非你的Solr是完善的系统,否则我会下载Solr 4并再次尝试使用安装附带的DIH罐子