Писатель скоростных ответов не работает в Solr - PullRequest
0 голосов
/ 21 мая 2019

Я пытаюсь настроить и запустить интерфейс 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>

Есть предложения?

Ответы [ 2 ]

1 голос
/ 23 мая 2019

Скопируйте банку "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" с "...\solr-7.5.0\dist" на "...\solr-7.5.0\server\solr-webapp\webapp\WEB-INF\lib"

Примечание. Местоположение папки может отличаться в linux или другой операционной системе.

0 голосов
/ 23 мая 2019

В приведенной выше конфигурации директива 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.

...