Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。
Solr是一个高性能,采用Java开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。
本主要介绍再docker中如何安装solr8.3.1
1、拉取centos镜像
docker pull centos
2、启动容器
docker run --privileged -itd -p 8983:8983 -e "container=docker" -v /data/coowalt/solr:/data/soft --name solr centos /usr/sbin/init
参数说明
-v : 挂在容器目录到宿主机目录。本文将solr容器的/data/soft挂在到宿主机的/data/coowalt/solr目录下
-p : 端口映射。solr8.3.1默认端口为8983
–name : 容器名称,本例为solr
1、下载jdk1.8-u231
百度网盘下载
官网下载
2、上传下载的jdk至宿主机/data/coowalt/solr目录下
注:可以使用rz 命令或者ftp上传
1、下载solr8.3.1
百度网盘下载
官网下载
2、上传下载的solr8.3.1到宿主机/data/coowalt/solr目录下
注:可以使用rz或者ftp上传
由于在启动solr容器时将容器的/data/soft目录挂在到宿主机的/data/coowalt/solr目录下,所有在solr容器/data/soft目录下可以看到刚上传的.tar.gz包。
1)进入容器
docker exec -it solr bash
2)进入容器的/data/soft目录
cd /data/soft
3)解压jdk-8u231-linux-x64.tar.gz,并拷贝解压后的目录jdk1.8.0_231到/usr/local目录中
tar -xzvf jdk-8u231-linux-x64.tar.gz
mv jdk1.8.0_231 /usr/local
4)设置java环境,验证java是否安装成功,在/etc/profile和~/.bashrc文件中写入
vi ~/.bashrc
vi /etc/profile
在最后写入
export JAVA_HOME=/usr/local/jdk1.8.0_231
export PATH=$JAVA_HOME/bin:$PATH
保存退出编辑:wq,并应用配置
source ~/.bashrc
验证java
java -version
java version "1.8.0_231"
Java(TM) SE Runtime Environment (build 1.8.0_231-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)
1)进入容器的/data/soft目录,解压solr-8.3.1.tgz
cd /data/soft
tar -xzvf solr-8.3.1.tgz
2)在solr容器中安装lsof和service
yum install lsof -y
yum install initscripts -y
3)在容器中创建/usr/local/solr和/data/solr目录,并初始化solr
mkdir /data/solr
mkdir /usr/local/solr
/data/soft/solr-8.3.1/bin/install_solr_service.sh /data/soft/solr-8.3.1.tgz -d /data/solr -i /usr/local/solr
id: 'solr': no such user
Creating new user: solr
adduser: warning: the home directory already exists.
Not copying any file from skel directory into it.
Extracting /data/soft/solr-8.3.1.tgz to /usr/local/solr
Installing symlink /usr/local/solr/solr -> /usr/local/solr/solr-8.3.1 ...
Installing /etc/init.d/solr script ...
Installing /etc/default/solr.in.sh ...
#出现下面提示,说明solr提示成功
Service solr installed.
4)将配置文件软连接到etc
rm -f /etc/default/solr.in.sh
ln -s /usr/local/solr/solr/bin/solr.in.sh /etc/default/solr.in.sh
5)在/usr/local/solr/solr/bin/solr.in.sh最后添加
cd /usr/local/solr/solr/bin
cp solr.in.sh.orig solr.in.sh
vi solr.in.sh
SOLR_PID_DIR="/data/solr"
SOLR_HOME="/data/solr/data"
LOG4J_PROPS="/data/solr/log4j2.xml"
SOLR_LOGS_DIR="/data/solr/logs"
SOLR_PORT=“8983”
SOLR_TIMEZONE=“Asia/Shanghai”
#SOLR_HEAP=“4096m”#内存调优
6)重新启动solr服务
service solr restart
Waiting up to 180 seconds to see Solr running on port 8983 [\]
#出现下面提示说明solr启动成功
Started Solr server on port 8983 (pid=439). Happy searching!
7)打开浏览器,访问http://宿主机ip:8983
8)补充说明
#core仓库存放目录
/data/solr/data
#服务存放目录
/usr/local/solr/solr/
#solr配置文件
/etc/default/solr.in.sh 或 /usr/local/solr/solr/bin/solr.in.sh
#启动
service solr start
#停止
service solr stop
#重启
service solr restart
#服务启动文件位置
/etc/init.d/solr
solr环境容器已打包成镜像上传到 docker hub中。
可以使用 docker pull coowalt/solr8.3.1-jdk8u231:v1 拉取镜像到宿主机,启动容器