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>
ログに次のエラーが表示されます。
SEVERE: 完全なインポートに失敗しました: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.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 で。org.mortbay.jetty.Server.handle(Server.java:326) の handler.HandlerWrapper.handle(HandlerWrapper.java:152) 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.DocBuilder.buildDocument(DocBuilder.java:621) で org.apache.solr.handler.dataimport.DocBuilder で org.apache.solr.handler.dataimport.MongoD にキャストできません。 .doFullDump(DocBuilder.java:327) at org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:225) ... 24 詳細
ログには、org.apache.solr.handler.dataimport.DebugLogger$2 を org.apache.solr.handler.dataimport.MongoDBSource にキャストしようとしていると書かれていますが、それが起こっている理由を見つけることができません。 . すべての構成はよさそうです。他に何かしなければならないことはありますか?