mysql dump数据到solr中

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>

扫描二维码关注公众号,回复: 288986 查看本文章

在相同目录下增加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 &gt; '${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操作.

猜你喜欢

转载自fengbin2005.iteye.com/blog/2373782