3

私の data-config.xml は次のとおりで、solrconfig.xml とともに Conf フォルダーに保存しています:-

<dataConfig>
    <dataSource name="Sample" driver="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432/Sample" user="postgres" password="P@ssword">
        <document name="oneDocs">
            <entity dataSource="Sample" name="entity1" query="select FirstName from Employee">
                <field column="EmpId" name="EmpId" />
                <field column="FirstName" name="FirstName" />
                <field column="LastName" name="LastName" />
            </entity>
        </document>
    </dataSource>
</dataConfig>

そして、私のsolrconfig.xmlは次のとおりです:-

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

また、次の方法でライブラリを追加しようとしました:-

<lib dir="../../../contrib/extraction/lib" regex=".*\.jar" />
  <lib dir="../../../dist/" regex="solr-cell-\d.*\.jar" />

  <lib dir="../../../contrib/clustering/lib/" regex=".*\.jar" />
  <lib dir="../../../dist/" regex="solr-clustering-\d.*\.jar" />

  <lib dir="../../../contrib/dataimporthandler/lib/" regex=".*\.jar" />
  <lib dir="../../dist/" regex="solr-dataimporthandler-\d.*\.jar" />


  <lib dir="../../dist/" regex="postgresql-9.2-1002.jdbc3-\d.*\.jar" />

  <lib dir="../../../contrib/langid/lib/" regex=".*\.jar" />
  <lib dir="../../../dist/" regex="solr-langid-\d.*\.jar" />

  <lib dir="../../../contrib/velocity/lib" regex=".*\.jar" />
  <lib dir="../../../dist/" regex="solr-velocity-\d.*\.jar" />

  <!-- If a 'dir' option (with or without a regex) is used and nothing
       is found that matches, it will be ignored
    -->
  <lib dir="/total/crap/dir/ignored" /> 

私は常に同じエラーが発生しています:-

org.apache.solr.handler.dataimport.DataImportHandlerException: Data Config problem: DataImportHandler configuration file must have one <document> node.
    at org.apache.solr.handler.dataimport.DataImporter.loadDataConfig(DataImporter.java:226)
    at org.apache.solr.handler.dataimport.DataImporter.maybeReloadConfiguration(DataImporter.java:124)
    at org.apache.solr.handler.dataimport.DataImportHandler.handleRequestBody(DataImportHandler.java:168)
    at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
    at org.apache.solr.core.SolrCore.execute(SolrCore.java:1797)
    at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:637)
    at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:343)
    at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:141)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1307)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:453)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:560)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1072)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:382)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1006)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
    at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
    at org.eclipse.jetty.server.Server.handle(Server.java:365)
    at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:485)
    at org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)
    at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:926)
    at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:988)
    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:635)
    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
    at org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72)
    at org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:264)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
    at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.solr.handler.dataimport.DataImportHandlerException: DataImportHandler configuration file must have one <document> node.
    at org.apache.solr.handler.dataimport.DataImporter.readFromXml(DataImporter.java:250)
    at org.apache.solr.handler.dataimport.DataImporter.loadDataConfig(DataImporter.java:223)
    ... 32 more

これを解決するのを手伝ってください。これはほとんどの場合、食い尽くしています。ありがとう

注: Postgres と Apache Tomcat 7 と Java 7 を使用しています。

4

2 に答える 2

3

あなたのdata-config.xmlに欠陥があります。ドキュメント要素をデータソース要素にラップしました。両方とも、dataConfig 要素の直接の子と同じレベルにある必要があります。

これが、投稿した例外に次のように記載されている理由です。

データ構成の問題: DataImportHandler 構成ファイルには 1 つのノードが必要です。

XML パーサーは、dataConfig の子ノードとして文書エレメントを検出しません。

次のようにしてみてください。

<dataConfig>
    <dataSource name="Sample" driver="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432/Sample" user="postgres" password="P@ssword" />
    <document name="oneDocs">
       <entity dataSource="Sample" name="entity1" query="select FirstName from Employee">
            <field column="EmpId" name="EmpId" />
            <field column="FirstName" name="FirstName" />
            <field column="LastName" name="LastName" />
        </entity>
    </document>
</dataConfig>
于 2013-04-11T11:31:47.137 に答える
1

あなたdata-config.xmlの要素は、子ではなく、要素documentの兄弟でなければなりません。dataSource

つまり、次のようになります。

<dataConfig>
  <dataSource>
    ..
  </dataSource>
  <document>
    ..
  </document>
</dataConfig>
于 2013-04-11T11:31:49.870 に答える