# 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 选项,即可见到刚添加好的配置文件

# 四、使用刚上传的配置新建集合

# 1. 进入测试服solr管理页面Collection选项,并点击 Add Collection 按钮

# 2. 选择刚上传的配置,填好参数

# 3. 创建成功

# 五、 导入数据

# 1. 选择刚创建好的集合

# 2. 进入 Dataimport 选项 点击 Execute 按钮

# 3.查询集合

Last Updated: 1/14/2019, 5:28:47 PM