You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache Solr部署配置:如何将配置存入VCS、数据保留在本地

解决Apache Solr配置:Git托管配置+本地存储数据的部署问题

看起来你已经走对了方向,但几个配置细节没衔接上,导致Solr找不到核心配置。咱们一步步来修正:

1. 先修正Solr安装脚本的冗余问题

你的安装脚本里重复执行了install_solr_service.sh,顺序也有点问题,调整成这样更清晰可靠:

apt-get install -q -y openjdk-8-jdk
# Install Apache Solr if not already set up
if [[ ! -e "/etc/default/solr.in.sh" ]]; then
  SOLR_VERSION="7.7.1"
  SOLR_TGZ="solr-${SOLR_VERSION}.tgz"
  # Download and extract Solr
  wget http://www-eu.apache.org/dist/lucene/solr/${SOLR_VERSION}/${SOLR_TGZ}
  # Run the official install script properly
  tar xzf ${SOLR_TGZ}
  ./solr-${SOLR_VERSION}/bin/install_solr_service.sh ${SOLR_TGZ} --strip-components=2
  # Append custom config to solr.in.sh
  cat /vagrant/config/solr/solr.in.sh >> /etc/default/solr.in.sh
  # Replace solr.xml with your custom one
  rm -f /opt/solr/server/solr/solr.xml
  ln -s /vagrant/config/solr/solr.xml /opt/solr/server/solr/solr.xml
  # Clean up installation files
  rm -rf solr-${SOLR_VERSION} ${SOLR_TGZ}
fi

注:原脚本里chmod u+x ./install_solr_service.sh是多余的,官方解压后的脚本已经自带执行权限;重复运行安装脚本会生成冗余配置,所以只需要执行一次即可。

2. 让Solr正确识别核心的配置与数据路径

你的solr.xml已经把coreRootDirectory指向了Git托管的/vagrant/config/solr/cores,这一步是对的,但每个核心的core.properties里只指定了dataDir,缺失了配置目录的指向——Solr默认会去dataDir下找conf文件夹,但你的配置文件其实在Git目录的cores子目录里。

给每个核心的core.properties添加上配置路径的指定:

# 替换NAME_OF_CORE为实际核心名称
config=conf/solrconfig.xml
dataDir=/var/solr/data/NAME_OF_CORE

这样Solr加载核心时,会从/vagrant/config/solr/cores/NAME_OF_CORE/conf读取配置文件,而数据会存储在本地的/var/solr/data/NAME_OF_CORE目录,完美实现配置Git托管、数据本地存储的需求。

3. 修复创建新核心的报错问题

当你尝试创建new_core时,Solr会默认在coreRootDirectory(也就是/vagrant/config/solr/cores)下查找该核心的配置文件夹,但这个目录里并没有new_core的conf目录,所以报错。要创建新核心,你需要:

  • 先在/vagrant/config/solr/cores下创建new_core目录,放入完整的配置文件夹(可以从现有核心复制模板)
  • 在new_core目录下添加core.properties文件,指定dataDir=/var/solr/data/new_core
  • 重启Solr服务:sudo service solr restart
  • 或者用Solr CLI命令直接创建(更便捷):
sudo -u solr solr create_core -c new_core -d /vagrant/config/solr/cores/new_core/conf

4. 确保Solr服务有足够权限

别忘了给相关目录设置正确的权限,避免Solr读不到配置或者写不了数据:

# 让Solr用户能读取Git里的配置目录
sudo chown -R solr:solr /vagrant/config/solr/cores
# 确保本地数据目录权限正确
sudo mkdir -p /var/solr/data
sudo chown -R solr:solr /var/solr/data

最后验证

重启Solr服务后,访问localhost:8983/solr,应该就能看到所有托管在/vagrant/config/solr/cores下的核心了,每个核心的数据都会存在本地的/var/solr/data目录,配置则通过Git管理,完全符合你的需求。

内容的提问来源于stack exchange,提问作者Philipp Wrann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:46:15