Java Solr MongoDB数据导入器错误
我正在尝试将MongoDB数据导入Solr以进行索引,使用 这些是我添加到solrconfig.xml中的行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
<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了。