使用docker搭建高并发网站架构实践8--Docker+Solr搜索使用

Docker +Solr搜索引擎

Docker search solr

Docker pull solr

Docker run –name solr_test –d –p 8983:8983 –t solr

http://192.168.238.131:8983

Docker exec –it solr_test /bin/bash

Docker exec –it –user=solr solr_test bin/solr create_core –c gettingstarted

Docker exec –it

–user=solr_test bin/post –c gettingstarted example/exampledocs/manufacturers.xml

 

Docker exec –it solr_test /bin/bash

Solr的目录:  /opt/solr/server/solr/project-dir

Docker run –name solr_user

-v /data/solr_user:/opt/solr/server/solr/solr_user

–d –p 8983:8983 –t solr

修改solr_user/core.properties

name=solr_user

config=/opt/solr/server/solr/solr_user/conf/solrconfig.xml

schema=/opt/solr/server/solr/solr_user/conf/schema.xml

dataDir=/opt/solr/server/solr/solr_user/data/

三个路径与solr容器中的路径一致。

分词器设置不对:

 

/opt/solr/server/lib/

https://github.com/chenlb/mmseg4j-solr

http://www.cnblogs.com/ac1985482/p/4110764.html

Docker run –name solr_user

-v /data/solr_user:/opt/solr/server/solr/solr_user

-v /data/solr/mmseg4j-solr-2.3.0.jar:/opt/solr/server/lib/mmseg4j-solr-2.3.0.jar

-v /data/solr/mmseg4j-core-1.10.0.jar:/opt/solr/server/lib/mmseg4j-core-1.10.0.jar

–d –p 8983:8983 –t solr

Jar包挂载目录:

/opt/solr/dist/

Docker run –name solr_user

-v /data/solr_user:/opt/solr/server/solr/solr_user

-v /data/solr/mmseg4j-solr-2.3.0.jar: /opt/solr/dist/mmseg4j-solr-2.3.0.jar

-v /data/solr/mmseg4j-core-1.10.0.jar: /opt/solr/dist/mmseg4j-core-1.10.0.jar

–d –p 8983:8983 –t solr

版本问题:

Docker solr版本和mmseg4j分词器的版本问题:

可能是jar包位置不对

/opt/server/lib

Jar包之间的相互依赖关系;

制作一个solr镜像

Docker commit debain mydebain

Docker save mydebian > mydebian.tar

Docker import mydebain.tar testdebain

删除所有未运行 Docker 容器

docker rm $(docker ps -a -q)

删除所有未打 tag 的镜像

docker rmi $(docker images -q | awk '/^<none>/ { print $3 }')

删除所有镜像

docker rmi $(docker images -q)

根据格式删除所有镜像

docker rm $(docker ps -qf status=exited)

 

修改solr/WEB_INF/web.xml文件:

 

  1. 下载docker tomcat8容器和solr-5.4.0.tgz版本,为了便于支持分词功能(版本过高,则mmseg分词器不支持)

Docker search tomcat

Docker pull tomcat

下载solr-5.4.0.tgz版本:

准备mysql,mmseg jar包。

  1. 启动容器,进入容器内。

Docker run –name tomcat-solr –p 8080:8080 –d –v /data/solr/:/data/solr tomcat

Docker exec –it tomcat-solr /bin/bash

Tar xvfz solr-5.4.0.tgz

复制webapp目录:

Cp –r /data/solr/solr-5.4.0/server/solr-webapp/webapp /usr/local/tomcat/webapps/

Mv webapp solr

复制lib/ext/* jar包

Cp –r /data/solr/solr-5.4.0/server/lib/ext/* /usr/local/tomcat/webapps/solr/WEB-INF/lib/

复制server/solr目录

Cp –r /data/solr/solr-5.4.0/server/solr/  /usr/lcoal/tomcat/

Mv solr solrhome

复制log4j

Cp  

/data/solr/solr-5.4.0/server/resources/log4j.properties /usr/local/tomcat/webapps/solr/WEB-INF/classes/

将solr-5.4.0/dist目录下的

solr-dataimporthandler-5.4.0.jar  solr-dataimporthandler-extras-5.4.0.jar

复制到tomcat/webapps/solr/WEB-INF/lib/下,这个是为了以后导入数据库表数据

cp

/data/solr/solr-5.4.0/dist/solr-dataimporthandler-5.4.0.jar /usr/local/tomcat/webapps/solr/WEB-INF/lib/

cp

/data.solr/solr-5.4.0/dist/solr-dataimporthandler-extras-5.4.0.jar /usr/lcoal/tomcat/webapps/solr/WEB-INF/lib/

把mysql-connector-Java-5.1.21.jar

放到/home/developer/tomcat7/lib/下

mmseg4j-core-1.10.1-SNAPSHOT.jar

mmseg4j-solr-2.3.1-SNAPSHOT.jar

tomcat/webapps/solr/WEB-INF/lib/

此时solrhome为新建核的保存路径

修改/usr/local/tomcat/webapps/solr/WEB-INF/web.xml文件:将Tomcat中的solr关联上之前创建的solr工程

配置solr core的存放路径

  1. 修改配置文件,新建core

新建一个核/solrhome/solr_user   data  conf  core.properties

Core.prpperties配置路径:

在.../solrhome/solr_user/conf/solrconfig.xml中配置:

为了数据库的导入功能。

/solrhome/solr_user/conf新建data-config.xml配置文件:

主要用于连接数据库

 

/solrhome/solr_user/schema.xml中配置上述查询字段的索引:

Docker restart tomcat-solr

Docker logs tomcat-solr

访问:http://192.168.238.131:8080/solr/index.html

现在配置mmseg分词器:

在schema.xml中配置如下:

 

Mmseg分词器的jar包位置不对:

应该放/usr/lcoal/tomcat/webapps/solr/WEB-INF/lib目录下

将此容器保存为新镜像:

Docker commit tomcat-solr tomcat-solr

 

启动容器,把新建core的目录挂在到tomcat容器中的solrhome路径下:

Docker run --name new-solr –p 8080:8080

–v /data/new-core:/usr/local/tomcat/solrhome/ -d tomcat-solr

 

Docker restart solr-test

至此tomcat-solr制作完成。

Solr具体搜索语法应用

上传docke容器到仓库:docker hub

登录到docker hub

 

Docher push本地镜像到仓库

Docker push chenwenkai123456/solr-tomcat-mmseg

检测仓库的变化:

Docker inspect chenwenkai123456/solr-tomcat-mmseg

 

Docker search solr-tomcat-mmseg

Docker pull chenwenkai123456/solr-tomcat-mmseg

最初使用了tomcat作为solr容器来使用,其实solr本身就可以作为服务来使用,以后再交流心得。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值