我需要在利用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中,但将机器上的数据保留在其中?
设置一切的公司没有帮助,他们提供零信息。
亲切的问候, 菲利普