1

我正在尝试使用SolrMongoDataImportHandler将 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" />

以及请求处理程序的代码

<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

<?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-import 进行完全导入时

我得到以下回复

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>

以及日志中的以下错误。

严重:完全导入失败:java.lang.RuntimeException:java.lang.RuntimeException:java.lang.ClassCastException:org.apache.solr.handler.dataimport.DebugLogger$2 不能在 org.apache.solr 上转换 ler.dataimport.MongoDataSource .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.handleRequestBody(DataImportHandler.java:205) 在 org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129) 在 org. apache.solr.core.SolrCore.execute(SolrCore.java:1376) 在 org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:365)在 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) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) at 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) at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228) at 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.DocBuilder 的 org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:621) 中转换为 org.apache.solr.handler.dataimport.MongoD .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,但我无法找到它发生的原因. 所有的配置看起来都不错。还有什么我需要做的吗?

4

0 回答 0