liunx下solr集群搭建

#1.solr下载和安装
进入solr官网https://lucene.apache.org/solr/downloads.html下载solr-7.3.1.tgz版本(或者当前最新版本),然后上传至liunx服务器(或者直接使用命令下载),文件上传至/data/solr_cloud(可以自行修改)
解压solr-7.3.1.tgz
tar -zxvf solr-7.3.1.tgz
#2.修改相关配置文件
进入solr-7.3.1目录并修改solr.xml配置文件
cd /data/solr_cloud/solr-7.3.1/server/solr
vim solr.xml
编辑solr.xml配置文件:${host:ip} 这里的ip改为本机ip
进入solr-7.3.1目录并修改solr.xml配置文件
cd /data/solr_cloud/solr-7.3.1/bin
编辑solr.xml配置文件:找到ZK_HOST这一行,把注释去掉,并改成
ZK_HOST=“127.0.0.1:2181”,zk地址,多个地址以逗号隔开
这里的zk集群地址对应当前环境zk集群地址
#3.上传jar包(如果有则不需要上传)
进入lib目录 cd /data/solr_cloud/solr-7.3.1/server/solr-webapp/webapp/WEB-INF/lib
这是solr部署目录,内置jetty,默认以jetty启动
mysql-connector-java-5.1.44.jar(mysql驱动包,这个包需要下载)
solr-dataimporthandler-7.3.1.jar(这个包在/data/solr_cloud/solr-7.3.1/dist目录下可以找到,
直接 复制过来即可)
– 上面这两个包主要是为了solr从数据库导入数据所用
lucene-analyzers-smartcn-7.3.1.jar(这个包在/data/solr_cloud/solr-7.3.1/contrib/
analysis-extras/lucene-libs目录下可以找到,直接复制过来即可)
– 这个包是solr自带的中文分词器,效果不行
ik-analyzer-solr7-7.x.jar(需要自己下载)
– 这个包主要是做中文分词器使用,语义分析更合理
#4.创建配置文件
solr集群需要上传一套配置文件到zk,可供所有集群节点下载使用
选取一台机器创建配置文件目录(我的目录在/home/gongjin),然后从
/data/solr_cloud/solr-7.3.1/example/example-DIH/solr/db/conf复制到/home/solr
cp -r /data/solr_cloud/solr-7.3.1/example/example-DIH/solr/db/conf /home/solr
需要修改三个文件solrconfig.xml,db-data-config.xml,managed-schema
solrconfig.xml增加以下配置

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
      <str name="config">db-data-config.xml</str>
    </lst>
 </requestHandler>

db-data-config.xml修改如下,主要用于导入mysql数据到solr,需要根据对应表修改

<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
    <dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3388/wisdombus2.0_dispatch" user="test" password="test123" batchSize="-1"/>
    <document>
        <entity name="sche_dispatch_record" query="select *,CONCAT(UUID,'') id from sche_dispatch_record"
                deltaQuery="select * from sche_dispatch_record">
			<field column="id" name="id"/>
			<field column="UUID" name="uuid"/>
			<field column="line_id" name="lineId"/>
			<field column="corp_id" name="corpId"/>
			<field column="line_name" name="lineName" />
			<field column="notice_big_type" name="noticeBigType" />
			<field column="notice_type" name="noticeType" />
			<field column="guaidboard" name="guaidboardId" />
			<field column="guideboard_type" name="guideboardType" />
			<field column="handle_status" name="handleStatus" />
			<field column="notice_message" name="noticeMessage" />
			<field column="list_date" name="listDate" />
			<field column="veh_id" name="vehicleId" />
			<field column="veh_code" name="vehicleCode" />
			<field column="is_handle" name="isHandle" />
			<field column="driver_empl_id" name="driverEmplId" />
			<field column="is_approve" name="isApprove" />
			<field column="approve_status" name="approveStatus" />
			<field column="confirmor" name="confirmor" />
			<field column="is_receive" name="isReceive" />
			<field column="eff_start_time" name="effStartTime"/>
			<field column="eff_end_time" name="effEndTime"/>
			<field column="creator" name="creator"/>
			<field column="creat_time" name="creatTime"/>
			<field column="modifier" name="modifier"/>
			<field column="modify_time" name="modifyTime"/>
        </entity>
    </document>
</dataConfig>

managed-schema配置修改如下

<!-- ik分词器 -->  
	<fieldType name="text_ik" class="solr.TextField">  
	  <analyzer type="index">  
		  <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>  
		  <filter class="solr.LowerCaseFilterFactory"/>  
	  </analyzer>  
	  <analyzer type="query">  
		  <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/>  
		  <filter class="solr.LowerCaseFilterFactory"/>  
	  </analyzer>  
	</fieldType>
		
	<field name="uuid" type="plong" indexed="true" stored="true"/>
	<field name="lineId" type="plong" indexed="true" stored="true"/>
	<field name="corpId" type="plong" indexed="true" stored="true"/>
	<field name="lineName" type="text_general" indexed="true" stored="true"/>
	<field name="noticeBigType" type="pint" indexed="true" stored="true"/>
	<field name="noticeType"  type="string" indexed="true" stored="true"/>
	<field name="guaidboardId"  type="plong" indexed="true" stored="true"/>
	<field name="guideboardType"  type="pint"  stored="true"/>
	<field name="handleStatus"  type="pint"  stored="true"/>
	<field name="noticeMessage" type="text_general" indexed="true" stored="true" />
	<field name="listDate" type="pdate"  stored="true"/>
	<field name="vehicleId" type="plong" indexed="true" stored="true"/>
	<field name="vehicleCode" type="string" indexed="true" stored="true"/>
	<field name="isHandle" type="pint"  stored="true"/>
	<field name="driverEmplId" type="plong" indexed="true" stored="true"/>
	<field name="isApprove" type="pint" indexed="true" stored="true"/>
	<field name="approveStatus" type="pint" indexed="true" stored="true"/>
	<field name="confirmor" type="string"  stored="true"/>
	<field name="isReceive" type="pint" indexed="true" stored="true"/>
	<field name="effStartTime" type="pdate"  stored="true"/>
	<field name="effEndTime" type="pdate"  stored="true"/>
	<field name="creator" type="plong" indexed="true" stored="true"/>
	<field name="creatTime" type="pdate" indexed="true" stored="true"/>
	<field name="modifier" type="plong" indexed="true" stored="true"/>
	<field name="modifyTime" type="pdate" indexed="true" stored="true"/>
最后把配置文件上传到zk
进入/data/solr_cloud/solr-7.3.1/server/scripts/cloud-scripts目录,solr提供了上传的zk客户端
zkcli.sh,执行命令
./zkcli.sh -zkhost 172.16.200.30:2181,172.16.200.37:2181,172.16.200.38:2181 -cmd 
upconfig -confname solr_config -confdir /home/gongjin/conf
-- -zkhost后面是zk集群地址,-confname后面是要上传到zk的配置文件目录,自己定义名称
 -confdir后面跟的是需要上传的配置文件目录

#5.启动solr
进入/data/solr_cloud/solr-7.3.1/bin目录,执行命令
./solr start(如果不能启动执行./solr start -force,后面的命令同理都加上-force)
./solr restart 重启
./solr stop 停止
./solr stop -all 停止(当stop命令无效时使用)
#6.登录solr管理页面创建collections
http://127.0.0.1:8983/solr(端口默认8983)
每个集群节点都可以访问

在这里插入图片描述
#7.配置solr批量更新索引(solrj就不需要commit)
修改solrconfig.xml文件

15000
10000
true

上面配置的意思是:
maxTime:每15000ms,自动进行一次commit
maxDocs:若超过10000个文档更新,自动进行一次commit
openSearcher:执行完commit后记录马上可以搜索到

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值