# solr集群的集合配置
# 一、复制默认配置文件
# 1. 配置数据导入的jar包
进入solr更目录的 dist文件夹下
cd /data0/solr/dockerVolumes/solr/dist
将 solr-dataimporthandler-7.6.0.jar
solr-dataimporthandler-extras-7.6.0.jar
两个jar包拷贝到 /data0/solr/dockerVolumes/solr/server/solr-webapp/webapp/WEB-INF/lib
并下载mysql的连接器 mysql-connector-java-5.1.30.jar 也拷贝进去
# 二、 定义自己所需的集合
# 1.进入测试服solr 容器 挂载目录
cd /data0/solr/dockerVolumes/solr/server/solr/configsets
# 2 复制默认配置并改名为自己需要的配置名(这里以设备类竞价结果为例)并进入其配置目录
cp -r _default deviceBidResult
cd deviceBidResult/conf
# 3. 新增文件 db-data-config.xml 并写入以下内容
<dataConfig>
<dataSource type="JdbcDataSource" name="alyTest" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://数据库地址:端口/库名" user="用户名" password="密码" batchSize="-1" />
<document name="">
<!-- 设备类竞价结果 -->
<entity name="coOrderDetail" pk="detailId" dataSource="alyTest" transformer="ClobTransformer,HTMLStripTransformer" query="SELECT
MM.order_main_id as enquiryMainId,
DD.detail_id as enquiryDetailId,
MM.ORDER_CODE as enquiryCode,
'1' as orderType,
DD.device_name as orderTitle,
MM.device_type as deviceType,
MM.college_name as collegeName,
MM.college_id as collegeId,
DD.ORDER_NUM as num,
DD.UNIT as unit,
DD.BID_PRICE as bidPrice,
DD.BID_AMOUNT as bidAmount,
DATE_FORMAT(MM.publish_bidresult_time,'%Y%m%d%H%i%s') as publishBidresultTimeStr,
DD.company_name as companyName,
DD.company_id as companyId,
DD.device_brand as deviceBrand,
DD.device_model as deviceModel,
CO.IN_PROVINCE as inProvince
from co_order_main MM
left join co_order_detail DD on DD.order_main_id = MM.order_main_id
left join co_college_info CO on CO.college_id = DD.college_id
where MM.BID_FINISHED = 'Y'
and MM.order_status != '2'
and MM.order_status != '21'
and MM.order_status != '22'
and MM.order_status != '23'
and MM.is_publish_bidresult = 'Y'
and MM.publish_bidresult_time is not null
and MM.publish_bidresult_time != ''
and DD.COMPANY_NAME is not NULL
and DD.COMPANY_NAME != ''
and DD.status != '2'
and DD.status != '21'
and DD.status != '22'
and DD.status != '23'
">
<field column="enquiryMainId" name="enquiryMainId"/>
<field column="enquiryDetailId" name="enquiryDetailId"/>
<field column="enquiryCode" name="enquiryCode"/>
<field column="orderType" name="orderType"/>
<field column="orderTitle" name="orderTitle"/>
<field column="deviceType" name="deviceType"/>
<field column="collegeName" name="collegeName"/>
<field column="collegeId" name="collegeId"/>
<field column="num" name="num"/>
<field column="unit" name="unit"/>
<field column="bidPrice" name="bidPrice"/>
<field column="bidAmount" name="bidAmount"/>
<field column="publishBidresultTimeStr" name="publishBidresultTimeStr"/>
<field column="companyName" name="companyName"/>
<field column="companyId" name="companyId"/>
<field column="deviceBrand" name="deviceBrand"/>
<field column="deviceModel" name="deviceModel"/>
<field column="inProvince" name="inProvince"/>
</entity>
</document>
</dataConfig>
# 4. 进入 solrconfig.xml 添加 dataimport 的引用
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">db-data-config.xml</str>
</lst>
</requestHandler>
# 5. 进入 managed-schema 将查询的属性配置进去、加入如下代码
<field name="enquiryMainId" type="string" indexed="true" stored="true"/>
<field name="enquiryDetailId" type="string" indexed="true" stored="true" multiValued="false"/>
<field name="enquiryCode" type="string" indexed="true" stored="true" multiValued="false"/>
<field name="orderType" type="string" indexed="true" stored="true" multiValued="false"/>
<field name="orderTitle" type="text_ik" indexed="true" stored="true" multiValued="false"/>
<field name="deviceType" type="text_ik" indexed="true" stored="true" multiValued="false"/>
<field name="collegeName" type="text_ik" indexed="true" stored="true" multiValued="false"/>
<field name="collegeId" type="string" indexed="true" stored="true" multiValued="false"/>
<field name="num" type="float" indexed="true" stored="true"/>
<field name="unit" type="string" indexed="true" stored="true" multiValued="false"/>
<field name="bidPrice" type="float" indexed="true" stored="true"/>
<field name="bidAmount" type="float" indexed="true" stored="true"/>
<field name="publishBidresultTimeStr" type="string" indexed="true" stored="true" multiValued="false"/>
<field name="companyName" type="text_ik" indexed="true" stored="true" multiValued="false"/>
<field name="companyId" type="string" indexed="true" stored="true" multiValued="false"/>
<field name="deviceBrand" type="text_ik" indexed="true" stored="true" multiValued="false"/>
<field name="deviceModel" type="text_ik" indexed="true" stored="true" multiValued="false"/>
<field name="inProvince" type="text_ik" indexed="true" stored="true" multiValued="false"/>
# 三、 上传配置到zookeeper
# 1. 进入solr 容器
docker exec -ti solr-1 /bin/bash
# 2. 进入 bin 目录
cd bin
# 3. 上传配置 deviceBidResult 到zookeeper
solr zk upconfig -n deviceBidResult -d /opt/solr/server/solr/configsets/deviceBidResult/conf
其余配置上传
solr zk upconfig -n noDataImport -d /opt/solr/server/solr/configsets/default/conf
solr zk upconfig -n reagentOrderDetail -d /opt/solr/server/solr/configsets/reagentOrderDetail/conf
solr zk upconfig -n cpCompanyInfo -d /opt/solr/server/solr/configsets/cpCompanyInfo/conf
solr zk upconfig -n coBidAnnouncement -d /opt/solr/server/solr/configsets/coBidAnnouncement/conf
TIP
配置修改后也可用此命令进行覆盖
配置上传后集合要进行 reload
# 4.命令运行结果
登录测试服solr 网址 http://39.108.254.225:8983/solr/ (opens new window)
查看 *cloud 选项下的 tree 选项,即可见到刚添加好的配置文件