Java Solr MongoDB数据导入器错误

Java Solr MongoDB数据导入器错误,java,mongodb,solr,Java,Mongodb,Solr,我正在尝试将MongoDB数据导入Solr以进行索引,使用 这些是我添加到solrconfig.xml中的行 <lib path="../../dist/solr-mongo-importer-1.0.0.jar" /> <lib path="../../dist/mongo-2.9.3.jar" /> <lib path="../../dist/apache-solr-dataimporthandler-3.6.1" /> <?xml ve

我正在尝试将MongoDB数据导入Solr以进行索引,使用

这些是我添加到solrconfig.xml中的行

<lib path="../../dist/solr-mongo-importer-1.0.0.jar" />  
<lib path="../../dist/mongo-2.9.3.jar" />   
<lib path="../../dist/apache-solr-dataimporthandler-3.6.1" />
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
     <dataSource name="mymongo" type="MongoDataSource" database="cashlets" />
     <document name="service">
         <entity processor="org.apache.solr.handler.dataimport.MongoEntityProcessor"
                 query="{'Active':1}"
                 collection="Service"
                 datasource="mymongo"
transformer="org.apache.solr.handler.dataimport.MongoMapperTransformer" >

            <field column="name"    name="name"    mongoField="Name"/>

         </entity>
     </document>
 </dataConfig>

以及请求处理程序的代码

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
      <str name="config">data-config.xml</str>
    </lst>
  </requestHandler> 

data-config.xml
这是我的data-config.xml

<lib path="../../dist/solr-mongo-importer-1.0.0.jar" />  
<lib path="../../dist/mongo-2.9.3.jar" />   
<lib path="../../dist/apache-solr-dataimporthandler-3.6.1" />
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
     <dataSource name="mymongo" type="MongoDataSource" database="cashlets" />
     <document name="service">
         <entity processor="org.apache.solr.handler.dataimport.MongoEntityProcessor"
                 query="{'Active':1}"
                 collection="Service"
                 datasource="mymongo"
transformer="org.apache.solr.handler.dataimport.MongoMapperTransformer" >

            <field column="name"    name="name"    mongoField="Name"/>

         </entity>
     </document>
 </dataConfig>

现在,当我尝试使用http://localhost:8983/solr/dataimport?command=full-导入

我得到以下回应

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">2</int>
</lst>
<lst name="initArgs">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</lst>
<str name="command">full-import</str>
<str name="status">idle</str>
<str name="importResponse"/>
<lst name="statusMessages">
<str name="Time Elapsed">0:0:45.486</str>
<str name="Total Requests made to DataSource">0</str>
<str name="Total Rows Fetched">0</str>
<str name="Total Documents Processed">0</str>
<str name="Total Documents Skipped">0</str>
<str name="Full Dump Started">2012-11-26 16:21:30</str>
<str name="">Indexing failed. Rolled back all changes.</str>
<str name="Rolledback">2012-11-26 16:21:30</str>
</lst>
<str name="WARNING">
This response format is experimental. It is likely to change in the future.
</str>
</response>
此XML文件似乎没有任何与之关联的样式信息。文档树如下所示。
0
2.
data-config.xml
完全进口
闲置的
0:0:45.486
0
0
0
0
2012-11-26 16:21:30
索引失败。回滚所有更改。
2012-11-26 16:21:30
这种响应格式是实验性的。未来可能会发生变化。
以及日志中的以下错误

严重:完全导入失败:java.lang.RuntimeException: java.lang.RuntimeException:java.lang.ClassCastException: 无法强制转换org.apache.solr.handler.dataimport.DebugLogger$2 ler.dataimport.MongoDataSource 位于org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:264) 位于org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:375) 位于org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:445) 位于org.apache.solr.handler.dataimport.DataImportHandler.HandlerRequestBody(DataImportHandler.java:205) 位于org.apache.solr.handler.RequestHandlerBase.HandlerRequest(RequestHandlerBase.java:129) 位于org.apache.solr.core.SolrCore.execute(SolrCore.java:1376) 位于org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:365) 位于org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:260) 位于org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212) 位于org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399) 位于org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 位于org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 位于org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) 位于org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450) 位于org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) 位于org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) 位于org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 位于org.mortbay.jetty.Server.handle(Server.java:326) 位于org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 位于org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928) 位于org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549) 位于org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) 位于org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 位于org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228) 位于org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) 原因:java.lang.RuntimeException:java.lang.ClassCastException: 无法将org.apache.solr.handler.dataimport.DebugLogger$2强制转换为 org.apache.solr.handler.dataimport.MongoD 位于org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:621) 位于org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:327) 位于org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:225) ... 还有24个


在日志中,它说它正试图将org.apache.solr.handler.dataimport.DebugLogger$2转换为org.apache.solr.handler.dataimport.MongoDBSource,但我无法找到发生这种情况的原因。所有配置看起来都不错。还有什么我需要做的吗?

不确定您的错误,但您可以尝试使用的另一种方法是。谢谢Stennie,他已经开始使用MongoConnector了。