速度响应编写器在 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 后到特定位置。
我正在尝试启动 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 后到特定位置。