0

Solr 4.2.1 では solr post を使用できましたが、5.4 にアップグレードして post メソッドを使用した場合。Error loading class 'solr.XsltUpdateRequestHandler'エラーが発生しています。

完全なエラーは次のとおりです。

null:org.apache.solr.common.SolrException: Error loading class 'solr.XsltUpdateRequestHandler'
at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:559)
at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:490)

Caused by: java.lang.ClassNotFoundException: solr.XsltUpdateRequestHandler
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)

solrconfig で以下を使用しましたが、solr の開始時にエラーは発生しませんでした。

<requestHandler name="/update/xslt" class="solr.XsltUpdateRequestHandler" startup="lazy" />

どんな助けでも大歓迎です。

ありがとうございました

4

2 に答える 2

0

そのハンドラーは 4.8 またはそれよりも早く廃止されたようです。それが 5.0 までに Solr から完全に削除されたとしても、私は驚かないでしょうが、それについてのドキュメントには何もありません。私は 4.2.1 のドキュメントを引き上げましたが、それらにも非推奨の注釈があります。

遅くとも 4.10 にダウングレードして、そのハンドラーを使用できるかどうかを確認してから、エラーが再発するまで一度に 1 つずつバージョンのアップグレードを開始してください。4.2.1 から 5.4.1 への移行は非常に大きなものです。これらのバージョンの間にはかなりの変更が加えられています。

煩わされたくない場合は、5.4.1 で簡単な検索を行ったsolrconfig.xmlところ、次のものが見つかりました。

<!-- XSLT response writer transforms the XML output by any xslt file found
       in Solr's conf/xslt directory.  Changes to xslt files are checked for
       every xsltCacheLifetimeSeconds.  
    -->
  <queryResponseWriter name="xslt" class="solr.XSLTResponseWriter">
    <int name="xsltCacheLifetimeSeconds">5</int>
  </queryResponseWriter>

xsltを気にする理由がなかったので、これを使用する方法はわかりませんが、始めるには良い場所のようです.

于 2016-02-11T17:08:47.023 に答える
0

@TMBT さん、返信ありがとうございます。XsltUpdateRequestHandler は非推奨であるため、UpdateRequestHandler を使用して解決策を見つけることができました。solr.UpdateRequestHandler に変更したら、solr POST を実行でき、成功しました。

<requestHandler name="/update/xslt" class="solr.UpdateRequestHandler" startup="lazy" />
于 2016-02-11T23:01:28.190 に答える