2015-03-26 3 views
0

Я хочу добавить возможности поиска в свое веб-приложение с помощью solr. Развертывание solr с WAR с распределением SOLR очень просто и прямо, но мне интересно, имеет ли смысл делать это?Если solr должен быть включен в веб-приложение или отдельно

Должен ли быть установлен в качестве отдельной WAR или интегрирован в веб-приложение?

Для summerise У меня есть несколько вопросов:

  • Shold SOLR быть развернут в качестве отдельного WAR или интегрирован в приложение.
  • В случае, если он должен быть интегрирован в приложение, как я могу это сделать с последней версией SOLR? все ресурсы, которые я нашел для этого, относятся к более старым версиям и полагаются на обесцессированные классы.
  • В случае его развертывания отдельно, как мне подходить к тестированию моего приложения? поскольку SOLR пришлось бы развернуть отдельно, это сделало бы тестирование очень неуклюжим.

ответ

0

Не пытайтесь развернуть Solr как WAR. не

Из документации ...

https://cwiki.apache.org/confluence/display/solr/Major+Changes+from+Solr+4+to+Solr+5

Начиная с Solr 5.0 Solr больше не распространяется как "война" (Web Application Archive) подходит для развертывания в любом контейнере сервлетов. Solr теперь распространяется как приложение сервера автономным Java, в том числе запуск и остановка сценариев для использования на платформах Unix и MS-Windows, ...

...

Внутри Solr все еще осуществляется через Servlet API, и работает на Jetty, но это просто деталь реализации. Развертывание как «webapp» в других контейнерах сервлетов (или других экземплярах Jetty) не поддерживается и может не работать в будущих версиях Solx 5.x, когда в Solr могут быть внесены дополнительные изменения, чтобы использовать возможности пользовательского сетевого стека ,

+0

В этом ответе не рассматривается вопрос о развертывании solr standalone против внедрения solr в веб-приложение. Он просто говорит о развертывании solr standalone, который до версии 5 может быть выполнен с использованием предоставленного solr.war. Начиная с версии 5, no solr.war не предоставляется, но solr распространяется как автономное приложение Java-сервера на основе внутреннего Jetty – Ronald

0

Я бы развернуть Solr отдельно:

  • Вы можете (сейчас или позже) отдельный Solr физически от вашего веб-приложения, то есть положить Solr и ваш веб-приложение на разных машинах, чтобы отделить использование ресурсов (процессора, памяти, ...)
  • вы можете масштабировать Solr по горизонтали (сейчас или позже)
  • Solr и ваш WebApp работать в разных виртуальных машинах, и поэтому вы отделяете управления памятью и Garbage Collection
  • вы можете получить доступ к Solr от ра арендная плата