1.增加mysql jar 包. 并确认 solr-dataimporthandler-6.4.1.jar solr-dataimporthandler-extras-6.4.1.jar 是否都存在
增加 /Users/fengbin/soft/solr/tomcat1/webapps/solr/WEB-INF/lib/mysql-connector-java-5.1.31.jar
2. 数据导入配置
在/Users/fengbin/soft/solr/solrhome1/trade/conf/solrconfig.xml
增加
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
在相同目录下增加data-config.xml
/Users/fengbin/soft/solr/solrhome1/trade/conf/data-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource name="datasource_trade" type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/console" user="root" password="fengbin" batchSize="100" />
<document>
<entity
name="trade_for_solr"
pk="id"
dataSource="datasource_trade"
query="select * from trade_for_solr where is_delete=0"
deltaQuery="select id from trade_for_solr where createTime > '${dataimporter.last_index_time}'"
deletedPkQuery="select id from trade_for_solr where is_delete=1"
deltaImportQuery="select * from trade_for_solr where id='${dataimporter.delta.id}'"
transformer="ClobTransformer,HTMLStripTransformer,DateFormatTransformer" >
<field column="id" name="id" />
<field column="tradeType" name="tradeType" />
<field column="tradeNo" name="tradeNo" />
<field column="olnId" name="olnId" />
<field column="online" name="online" />
<field column="shopNick" name="shopNick" />
<field column="shopType" name="shopType" />
<field column="comId" name="comId" />
<field column="status" name="status" />
<field column="olnStatus" name="olnStatus" />
<field column="createTime" name="createTime" />
<field column="payTime" name="payTime" />
<field column="endTime" name="endTime" />
<field column="modifyTime" name="modifyTime" />
<field column="sendTime" name="sendTime" />
<field column="total" name="total" />
<field column="postFee" name="postFee" />
<field column="payment" name="payment" />
<field column="discount" name="discount" />
<field column="servicePayment" name="servicePayment" />
<field column="nickType" name="nickType" />
<field column="nickName" name="nickName" />
<field column="receiver" name="receiver" />
<field column="state" name="state" />
<field column="city" name="city" />
<field column="district" name="district" />
<field column="address" name="address" />
<field column="zip" name="zip" />
<field column="email" name="email" />
<field column="mobile" name="mobile" />
<field column="phone" name="phone" />
<field column="expressName" name="expressName" />
<field column="expressNo" name="expressNo" />
<field column="expressCode" name="expressCode" />
</entity>
</document>
</dataConfig>
<!--query:查询数据库表符合记录数据-->
<!--deltaQuery:查询出需要增量索引的数据,所有经过修改的记录的Id,可能是修改操作、添加操作、删除操作产生的(此查询只对增量导入起作用,而且只能返回Id值) -->
<!--deletedPkQuery:查询出需要删除的数据记录主键Id,solr通过它来删除索引里面对应的数据(此查询只对增量导入起作用,而且只能返回ID值)-->
<!--deltaImportQuery:次查询是获取以上两步的Id,然后把其全部数据获取,根据获取的数据,对索引库进行更新操作,可能是删除,添加,修改(此查询只对增量导入起作用,可以返回多个字段的值,一般情况下,都是返回所有字段的列)-->
<!--transformer:格式转化-->
3更新solr配置文件
cd /Users/fengbin/soft/solr/solr-6.4.1/server/scripts/cloud-scripts
zkcli.sh -zkhost 127.0.0.1:2181 -cmd upconfig -confdir /Users/fengbin/soft/solr/solrhome1/trade/conf -confname tradeConf
4.在collection - hand_trade 索引中 执行reload操作.