Мне нужно сделать некоторые изменения в проекте, который использует Apache Solr для полнотекстового поиска.Кто-то настроил все на рабочей машине, и я хочу подготовить все локально и сразу развернуть всю новую версию.
Я уже создал рабочую бродячую установку для всего, и она работает хорошо.
Но мойпроблема в том, что я не очень разбираюсь в настройке apache solr и не могу заставить его работать.
Вот мой установочный скрипт:
apt-get install -q -y openjdk-8-jdk
# install apache solr
if [[ ! -e "/etc/default/solr.in.sh" ]]
then
wget http://www-eu.apache.org/dist/lucene/solr/7.7.1/solr-7.7.1.tgz
tar xzf solr-7.7.1.tgz solr-7.7.1/bin/install_solr_service.sh --strip-components=2
chmod u+x ./install_solr_service.sh
./install_solr_service.sh solr-7.7.1.tgz
cat /vagrant/config/solr/solr.in.sh >> /etc/default/solr.in.sh
rm -f /opt/solr-7.7.1/server/solr/solr.xml
ln -s /vagrant/config/solr/solr.xml /opt/solr-7.7.1/server/solr/solr.xml
fi
содержимое / vagrant / config / solr /solr.in.sh
(содержимое взято из производственного конфига - я не совсем понимаю цель)
# this is just a partial file - we append its contents to the original
SOLR_RECOMMENDED_OPEN_FILES=65000
Содержимое связанного solr.xml
<?xml version="1.0" encoding="UTF-8" ?>
<solr>
<str name="coreRootDirectory">${coreRootDirectory:/vagrant/config/solr/cores}</str>
<solrcloud>
<str name="host">${host:}</str>
<int name="hostPort">${jetty.port:8983}</int>
<str name="hostContext">${hostContext:solr}</str>
<bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
<int name="zkClientTimeout">${zkClientTimeout:30000}</int>
<int name="distribUpdateSoTimeout">${distribUpdateSoTimeout:600000}</int>
<int name="distribUpdateConnTimeout">${distribUpdateConnTimeout:60000}</int>
<str name="zkCredentialsProvider">${zkCredentialsProvider:org.apache.solr.common.cloud.DefaultZkCredentialsProvider}</str>
<str name="zkACLProvider">${zkACLProvider:org.apache.solr.common.cloud.DefaultZkACLProvider}</str>
</solrcloud>
<shardHandlerFactory name="shardHandlerFactory"
class="HttpShardHandlerFactory">
<int name="socketTimeout">${socketTimeout:600000}</int>
<int name="connTimeout">${connTimeout:60000}</int>
<str name="shardsWhitelist">${solr.shardsWhitelist:}</str>
</shardHandlerFactory>
</solr>
Каталог ядер содержит всю информацию с рабочей машины, я просто добавил следующее значение в файл core.properties
внутри каждого ядра
dataDir=/var/solr/data/NAME_OF_CORE
Я рассчитывал, что данные будут частьюмоей машины, но часть конфигурации моего репозитория.
Но когда я перехожу к localhost: 8983 (который работает отлично), я не вижу никакого ядра.Также я не могу создать новое ядро, при создании нового ядра с именем "new_core" оно говорит:
new_core: org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: Could not load conf for core new_core: Error loading solr config from /var/solr/data/new_core/conf/solrconfig.xml
Итак - как бы я правильно подготовил solr, чтобы сохранить все мои настройки в git, кроме данных на машине??
Компания, которая все настраивает, бесполезна, они предоставляют НУЛЕВУЮ информацию.
С уважением, Филипп