单机版solr6.3和分布式solr6.3的安装部署 转载自:https://www.cnblogs.com/Lxiaojiang/p/6737323.html 一、单机版的solr部署
我的是在windows下安装的,linux同理
1. 安装JDK8,并配置好环境变量,一般我们经常开发的电脑上应该都有JDk了,所以这一步可以忽略。
2. 解压solr6.3
3. 拷贝分词相关JAR包到你solr目录下的server\solr-webapp\webapp\WEB-INF\lib中,如:ansj-seg.jar nlp-lang.jar等
4.在文件夹中创建solr core:
在solr目录下的server/solr下创建一个文件夹collection,一般是复制已有的collection,然后编辑collection文件夹下conf配置文件中的schema.xml,里面就是你的表结构(包括:字段,分词包引入,字段类型,拷贝字段,动态字段等)
因为solr版本是6.3,因此不需要用tomcat建立服务器。
5.开启solr:
在cmd命令下输入
cd sorl/solr-6.3.0/bin/solr start -f
6.在浏览器中输入solr地址,在界面上创建core:
如:192.168.1.100:8983/solr/admin
打开后显示solr 界面:
在solr界面中选中Core Admin 然后点击Add Core
输入:
core的名字 (collection)
data的路径(默认在server/solr/collection/)
配置文件schema的名字(默认为schema.xml 或者schema)
注意:如果有managed-schema文件,应该将他重命名为schema.xml,当创建好core后系统会生成一个managed-schema和schema.xml.bak文件
solr配置文件的名字solrConfig.xml
填写完毕重启solr即可
其它命令:
$ bin/solr start -f 前台运行
$ bin/solr start -p 8984 指定端口 默认8983
$ bin/solr stop -p 8983 关闭solr,如果不指定端口,可用-all关闭单机上所有实例
$ bin/solr status 当前服务器上solr运行状态
二、 单机版tomcat下安装solr
(一) 环境
solr 6.3.0 下载地址 http://archive.apache.org/dist/lucene/solr/6.3.0/
jdk 1.7,1.8
tomca,7,8
(二) 安装solr到tomcat
1. 解压solr ,把 solr\solr-6.3.0\server\solr-webapp下的 webapp 文件夹拷贝到tomcat 的webapps下,重命名为solr,也可以是其他名字;
( 注意,此处有的教程错误的将solr-webapp文件夹进行拷贝,这会导致solr启动不了)
2. 拷贝solr-6.3.0\server\lib\ext 下的jar包到 tomcat\webapps\ 下solr 项目的WEB-INF\lib下;拷贝solr-6.3.0\dist 下solr-dataimporthandler jar 包,solr-dataimporthandler-extras-6.3.0.jar 包 到 tomcat\webapps\ 下solr 项目的WEB-INF\lib下
3. 拷贝solr-6.3.0\server 下的solr文件夹到E盘或其它非中文目录下,重命名为solrhome;
4. 修改tomcat\webapps\ solr(solr的项目名)\WEB-INF\web.xml, 找到如下代码,去掉注释,/put/your/solr/home/here 改为你自己的solrhome的路径, 如:E:/solr-home
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>E:/solr-home</env-entry-value>
<env-entry-type>Java.lang.String</env-entry-type>
</env-entry>
5. 拷贝solr-6.3.0\server\resources下的log4j.properties到tomcat\webapps\solr\WEB-INF\classes,如果WEB-INF下没有classes文件那么就创建一个classes文件夹。
6. 启动tomcat, 输入http://localhost:8983/solr/index.html (solr默认端口为8983)
启动solr用cmd指令:
看到如下界面:
(三)添加第一个core
-
进入到D:\solr\solr-6.3.0\server\solr下,新建一个文件夹:cores
1 进入到server\solr\configsets\sample_techproducts_configs 文件夹,将此文件夹下的conf 目录拷贝到刚刚建立的core的文件夹下,即我的cores文件夹下 -
2 在浏览器中输入http://localhost:8983/solr/index.html,进入solr管理页面,点击左侧的add core,在name 和instanceDir下都输入cores(在步骤1中取得名称) ,点击add core即可
-此时再输入http://localhost:8983/solr/index.html, 在左侧即可看见刚刚建立的core
- 然后在进入到\cores目录,此时会发现多了一个data文件夹和一个properties文件,如图:
data目录,用于存储索引文件,core.properties文件用于存放core的配置信息
到此solr的搭建,以及第一个core的就到此结束了
三、分布式solr部署
1.部署 zookeeper
1)下载zookeeper3.4.6,分别在三台机器上(192.168.2.124,192.168.2.125,192.168.2.126)解压,路径为: /home/zookeeper-3.4.6
2)配置 zookeeper/conf/zoo.cfg,如:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/zooData
#log目录,建议和data目录分开存储
dataLogDir=/home/zooData
#注:这里的home一般是linux下的home,我们也可以选其他文件路径如:/data
# the port at which the clients will connect
clientPort=2181
server.1=192.168.2.124:2888:3888
server.2=192.168.2.125:2888:3888
server.3=192.168.2.126:2888:3888
注:上面三个是集群服务器的地址
3)在所有zookeepr服务器dataDir目录增加myid文件,写对应服务器编号1、2…
2 部署solrCloud
分别在三台机器上(192.168.2.124,192.168.2.125,192.168.2.126)解压,路径为: /home/solr/solr-6.3.0
1)修改 bin/solr.in.sh ,主要修改以下配置:
ZK_HOST=”192.168.2.124:2181,192.168.2.125:2181,192.168.2.126:2181″
SOLR_HOST=”192.168.2.126″ #不修改默认为localhost,会导致其它节点无法启动
SOLR_TIMEZONE=”Asia/Shanghai”
SOLR_HOME=/home/solr/solrData
2)上传solr.xml到zookeeper
./server/scripts/cloud-scripts/zkcli.sh -zkhost 127.0.0.1:2181 -cmd putfile /solr.xml /home/solr/solrData/solr.xml
3) bootstrap solrCloud
./server/scripts/cloud-scripts/zkcli.sh -zkhost 127.0.0.1:2181 -cmd bootstrap -solrhome /home/solr/solrData
3.集群启动,创建collection,修改配置,
1)、ZooKeeper的集群启动(124,125,126,同时启动)
/home/zookeeper-3.4.6/bin/zkServer.sh start
2)、solr启动
/home/solr/solr-6.3.0/bin/solr start -force
/home/solr/solr-6.3.0/bin/solr start status(查看启动状态)
4、修改schema文件
1).添加字段,修改managed-schema文件(两种方式:1.直接在linux vim下编辑;2.在本机编辑好后传输到对应位置如:/home/collections/collection1/conf/managed-schema)
注:如果需要新的解析包不仅需要改字段,同时要引入solrConfig.xml中的lib
solrConfig.xml中
<!– 启用icu分析包
<lib dir=”${solr.install.dir:../../../..}/contrib/analysis-extras/lib/” regex=”.*\.jar” />
–>
2).上传config,linux下执行如下命令:
/home/solr/solr-6.3.0/server/scripts/cloud-scripts/zkcli.sh –zkhost 127.0.0.1:2181 -cmd upconfig -confnamecollectionY -confdir /home/collections/collectionY_configs/conf
注:collectionY指的是solr中collection的configName;
collectionY_configs指得是指定的配置文件所在文件夹,里面的schema.xml是字段和类型配置文件
5.collection的创建,在浏览器中执行
http://192.168.2.124:8983/solr/admin/collections?action=CREATE&name=collection1&collection.configName=collectionY&numShards=3&replicationFactor=1&createNodeSet=192.168.2.124:8983_solr,192.168.2.125:8983_solr,192.168.2.126:8983_solr&maxShardsPerNode=2
注:collection1指的是solr中创建的collection名称;collectionY指的是solr中collection1的configName;
6.更新collection
http://192.168.2.124:8983/solr/admin/collections?action=RELOAD&name=collection1
7.删除collection
http://192.168.2.124:8983/solr/admin/collections?action=DELETE&name=collection1
8 配置中文分词插件(优先选用ansj)
1 ansj插件
1)安装插件
在每台solr服务器上,将ansj_seg-5.1.0.jar nlp-lang-1.7.2.jar nutz-1.r.58.jar ansj-seg-solr6.jar拷贝到server/solrwebapp/webapp/WEB-INF/lib
2)schema配置
<fieldType name=”text_cn” class=”solr.TextField” positionIncrementGap=”100″>
<analyzer type=”index”>
<tokenizer class=”*.*.*.solr.AnsjTokenizerFactory” isQuery=”false” />
</analyzer>
<analyzer type=”query”>
<tokenizer class=”*.*.*..solr.AnsjTokenizerFactory” />
</analyzer>
</fieldType>