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

Velocity response writer is not working in Solr

我正在尝试启动 Velocity 接口并 运行 使用 Solr (8.0.0) 的文档,但我总是收到以下错误:

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>

有什么建议吗?

将 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 或其他操作系统上的文件夹位置可能不同。

在上面给出的配置中,加载速度库的 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 后到特定位置。