12

私はsolrが初めてです。サーバーに apache tomcat 7.0 をインストールし、サーバーに solr 3.6.1 をインストールしました。

私の D:\ ドライブには、ネットワーク担当者が設定した solr-home フォルダーがあります。その中のフォルダーは、bin、etc、logs、multicore、webapps です。

マルチコア フォルダーには、core0、core1、exampledocs、README.txt、および solr.xml があります。webapps フォルダーには solr.war ファイルがあり、他には何もありません。

ここで、conf フォルダーを含む ConfigUserTextUpdate という名前のマルチコア フォルダーにもう 1 つのコア フォルダーを保持し、Tomcat サービスを再起動すると、localhost/solr で新しいコアを確認できます。

ここで、db-config.xml を ConfigUserTextUpdate コアに追加します。以下が内容です。

<dataConfig>
<dataSource
type="JdbcDataSource"
driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://<dbname>\<servername>;databaseName=dbname" user="username"
    password="password"/>
<document>
    <entity name="ConfigUserTextUpdate" query="UserTextUpdate_Index">
    </entity>
</document>
</dataConfig>

ここまでは問題なく、3 つのコアすべてが localhost/solr に表示されます。ここで、コア ConfigUserTextUpdate の solrconfig.xml に次の行を追加します

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

そして、以下に示すようにエラーが発生し始めます。

HTTP Status 500 - Severe errors in solr configuration. Check your log files for more detailed information on what may be wrong. If you

設定エラー後も solr を続行するには、solr.xml で false に変更 ----------------------------------- -------------------------- org.apache.solr.common.SolrException: クラス 'org.apache.solr.handler.dataimport の読み込み中にエラーが発生しました。 org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:394) の DataImportHandler' org.apache.solr.core.SolrCore.createInstance(SolrCore.java:419) org.apache.solr.core.SolrCore .createRequestHandler(SolrCore.java:455) org.apache.solr.core.RequestHandlers.initHandlersFromConfig(RequestHandlers.java:159) org.apache.solr.core.SolrCore.(SolrCore.java:563) org.apache org.apache.solr.core.CoreContainer.load(CoreContainer.java:332) の .solr.core.CoreContainer.create(CoreContainer.java:480) org.apache.solr.core.CoreContainer.load(CoreContainer.java) :216) org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:161) で org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:96) で org.apache.catalina.core .ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:277) で org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258) で org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:382) でorg.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:103) org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4650) で org.apache.catalina.core.StandardContext.startInternal(StandardContext) .java:5306) の org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) の org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633) org .apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:977) で org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1655) で java.util.concurrent.Executors$RunnableAdapter.call (未知のソース) java.util.concurrent.FutureTask$Sync.innerRun (未知のソース) で java.util.concurrent.FutureTask.run (未知のソース) で java.util.concurrent.ThreadPoolExecutor$Worker.runTask (未知のソース) java.util.concurrent.ThreadPoolExecutor$Worker.run(不明なソース) で java.lang.Thread.run(不明なソース) で 原因: java.lang.ClassNotFoundException: org.apache.solr.handler.dataimport。DataImportHandler の java.net.URLClassLoader$1.run (未知のソース) の java.security.AccessController.doPrivileged (ネイティブ メソッド) の java.net.URLClassLoader.findClass (未知のソース) の java.lang.ClassLoader.loadClass (未知のソース) java.net.FactoryURLClassLoader.loadClass (未知のソース) で java.lang.ClassLoader.loadClass (未知のソース) で java.lang.Class.forName0 (ネイティブ メソッド) で java.lang.Class.forName (未知のソース) で org .apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:378) ... 27 詳細org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:378) で java.lang.Class.forName(未知のソース) で java.lang.Class.forName0(ネイティブ メソッド) で loadClass(未知のソース) .. . 27 以上org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:378) で java.lang.Class.forName(未知のソース) で java.lang.Class.forName0(ネイティブ メソッド) で loadClass(未知のソース) .. . 27 以上

dataimporthandler.jar ファイルをコア フォルダーに配置したり、さまざまなサイトで提供されている他の多くのことを試したりしましたが、それでも同じエラーが発生します。これらについて私を助けてください。

さらに情報が必要な場合はお知らせください。

前もって感謝します。

4

4 に答える 4

28

solrconfig.xml を編集し、ライブラリへのパスも追加する必要があります。

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

..そのディレクトリにまだある場合。solrconfigs の例では、すぐ下に配置されていることがわかりました

<luceneMatchVersion>LUCENE_40</luceneMatchVersion>
于 2013-01-15T10:49:02.847 に答える
8

solr-4.3.0 で実装しようとしているとき: http://wiki.apache.org/solr/DIHQuickStart追加:

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

ファイル内: PROJECT-HOME \solr\collection1\ conf\solrconfig.xml

既存の行の下:

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

問題を解決しました。おそらく、サーブレット コンテナーを再起動する必要があります (デフォルトの場合: Jetty)。

于 2013-11-09T14:02:49.193 に答える
1

solr-5.2.0バージョンの問題。solr-5.5.0に切り替えたところ、問題は解決しました。

于 2016-05-12T12:46:03.620 に答える
0

同様の問題がありましたが、私の問題はシンボリックリンクにありました(solrはそれらをたどりませんでした)。

于 2014-02-19T19:02:24.057 に答える