apache solr Provisioning-如何在VCS中保留配置,但在计算机上保留数据

时间:2019-03-19 11:11:22

标签: solr provisioning vagrant-provision

我需要在利用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>

cores目录包含来自生产机器的所有信息,我刚刚将以下值添加到每个core中的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中,但将机器上的数据保留在其中?

设置一切的公司没有帮助,他们提供零信息。

亲切的问候, 菲利普

0 个答案:

没有答案