обеспечение Apache Solr - как сохранить конфигурацию в VCS, но данные на компьютере - PullRequest
0 голосов
/ 19 марта 2019

Мне нужно сделать некоторые изменения в проекте, который использует 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, кроме данных на машине??

Компания, которая все настраивает, бесполезна, они предоставляют НУЛЕВУЮ информацию.

С уважением, Филипп

...