速度响应编写器不在Solr中工作

时间:2019-05-21 15:07:19

标签: java solr velocity

我正在尝试使用Solr(8.0.0)中的文档来启动和运行Velocity界面,但是我总是遇到以下错误:

org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: org/apache/solr/response/QueryResponseWriter

java.lang.ClassNotFoundException: org.apache.solr.response.QueryResponseWriter

我尝试了许多配置,将lib文件夹置于核心,solr主页,服务器根目录中……将其通过solrconfig.xml。

即使在标准示例“ techproduct”中,速度也不起作用。

在solrconfig中,我添加了以下代码:

...
  <!--<lib dir="${solr.install.dir:../../../..}/contrib/extraction/lib" regex=".*\.jar" />
  <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-cell-\d.*\.jar" />

  <lib dir="${solr.install.dir:../../../..}/contrib/clustering/lib/" regex=".*\.jar" />
  <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-clustering-\d.*\.jar" />

  <lib dir="${solr.install.dir:../../../..}/contrib/langid/lib/" regex=".*\.jar" />
  <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-langid-\d.*\.jar" />

  <lib dir="${solr.install.dir:../../../..}/contrib/velocity/lib" regex=".*\.jar" />
  <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-velocity-\d.*\.jar" />
  <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-ltr-\d.*\.jar" />-->
<lib dir="../lib" regex=".*\.jar" />
...
  <queryResponseWriter name="velocity" class="solr.VelocityResponseWriter">
    <str name="template.base.dir">${velocity.template.base.dir:}</str>
    <!--
  <str name="init.properties.file">velocity-init.properties</str>
  <bool name="params.resource.loader.enabled">true</bool>
  <bool name="solr.resource.loader.enabled">false</bool>
  <lst name="tools">
    <str name="mytool">com.example.MyCustomTool</str>
  </lst>
-->
  </queryResponseWriter>
...
  <requestHandler name="/browse" class="solr.SearchHandler" useParams="query,facets,velocity,browse">
    <lst name="defaults">
      <str name="echoParams">explicit</str>
    </lst>
  </requestHandler>

有没有建议?

2 个答案:

答案 0 :(得分:1)

将jar "solr-velocity-7.5.0""D:\solr-7.5.0\solr-7.5.0\dist"复制到"D:\solr-7.5.0\solr-7.5.0\server\solr-webapp\webapp\WEB-INF\lib"

通用方法是将"solr-velocity-7.5.0" jar从"...\solr-7.5.0\dist"复制到"...\solr-7.5.0\server\solr-webapp\webapp\WEB-INF\lib"

注意:在Linux或其他操作系统上,文件夹位置可以不同。

答案 1 :(得分:0)

在上面给出的配置中,加载速度库的lib指令被注释掉。在XML中,<!---->之间的任何内容都被视为注释:

 <!--<lib dir="${solr.install.dir:../../../..}/contrib/extraction/lib" regex=".*\.jar" />
  ...
  <lib dir="${solr.install.dir:../../../..}/contrib/velocity/lib" regex=".*\.jar" />
  <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-velocity-\d.*\.jar" />
  <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-ltr-\d.*\.jar" />-->

删除注释并重新启动-建议使用lib指令来加载库,因为它使您可以轻松切换已加载的库以及可用于哪个内核,而不必记住将库复制到一个库中。安装核心或升级Solr之后的特定位置。