solrcloud数据导入配置

来源:互联网 发布:淘宝违反价格法 编辑:程序博客网 时间:2024/06/05 22:55

已经配置好了solrcloud三台服务器 192.168.1.236、192.168.1.237、192.168.1.238

zookeeper 节点192.168.1.236、192.168.1.237、192.168.1.238

solr tomcat节点192.168.1.236、192.168.1.237、192.168.1.238


1.添加jar包到tomcat (三个节点都要)

复制solr解压目录中dist下的solr-dataimporthandler-5.5.4.jar    solr-dataimporthandler-extras-5.5.4.jar 复制到WEB-INF/lib下

添加mysql-connection jar包到WEB-INF/lib下,我这里是mysql-connector-java-5.1.8.jar

2.修改配置文件solrconfig.xml(一个节点操作)

下载zookeeper上的solrconfig.xml

/usr/local/solr/server/scripts/cloud-scripts/zkcli.sh -zkhost 192.168.1.236:2181 -cmd getfile /configs/mycollection3/solrconfig.xml solrconfig.xml 

修改solrconfig.xml添加如下内容:

  <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">      <lst name="defaults">          <str name="config">data-config.xml</str>  <!--这个文件下面会创建-->    </lst>   </requestHandler>
上传修改好的文件到zookeeper

/usr/local/solr/server/scripts/cloud-scripts/zkcli.sh -zkhost 192.168.1.236:2181 -cmd putfile /configs/mycollection3/solrconfig.xml solrconfig.xml
3.创建data-config.xml文件(一个节点操作)

配置数据库连接、查询sql 、字段

保证用户名密码可以远程连接

内容:

dataConfig>   <dataSource  type="JdbcDataSource" driver="com.mysql.jdbc.Driver"    url="jdbc:mysql://192.168.1.233:4040/ssm?useUnicode=true&characterEncoding=utf-8"        user="root" password="root"  />    <document>      <entity name="area"  query="select t.id as id,p.code as pcode,p.name as province,c.code as ccode,c.name as city,t.code as tcode,t.name as townfrom t_address_town t ,t_address_province p,t_address_city c where t.cityCode = c.code and c.provinceCode = p.code">            <field column="id" name="id"  />          <field column="pcode" name="pcode"  />          <field column="province" name="province"  />          <field column="ccode" name="ccode"  />          <field column="city" name="city"  />          <field column="tcode" name="tcode"  />          <field column="town" name="town"  />     </entity>     </document>  </dataConfig>  

上传到zookeeper:

/usr/local/solr/server/scripts/cloud-scripts/zkcli.sh -zkhost 192.168.1.236:2181 -cmd putfile /configs/mycollection3/data-config.xml data-config.xml


4.修改manage_schema(就是schema.xml  一个节点操作)
从zookeeper 下载manage_schema

修改manage_schema添加需要导入solr的字段

 <field name="id" type="int" indexed="true" stored="true" required="true" multiValued="false" />    <field name="pcode" type="string" indexed="true" stored="true"/>   <field name="province" type="string" indexed="true" stored="true"/>   <field name="ccode" type="string" indexed="true" stored="true"/><field name="tcode" type="string" indexed="true" stored="true"/><field name="city" type="string" indexed="true" stored="true"/><field name="town" type="string" indexed="true" stored="true"/><field name="text" type="string" indexed="true" stored="true"/>

上传修改后的文件到zookeeper

到此配置完毕  重启tomcat


选择好entry为上面配置的entry ,我这里是area ,点击execute 就开始导入,我们可以点击refresh status 刷新导入状态

看到completed则表示导入完成:


我们可以在query中查询测试


增量跟新:

数据库建表,注意last_modify,这是增量跟新必须,有了这样一个字段,Solr才能判断增量导入的时候,哪些数据是新的


data-config.xml配置:


query : 查询所有数据
deltaQuery:从query的数据中查询所有last_modified大于上一次同步${dataimporter.last_index_time}时间的id(即为需要增量同步的数据),该id = ${dih.delta.id}
deltaImportQuery :根据 deltaQuery 返回的id查找所有信息,为增量同步提供数据源
${dih.delta.id} : 记录本次要索引的id
${dataimporter.last_index_time} : 最后一次索引的时间,即上一次同步的时间

在managed-schema(旧版schema.xml)中配置字段:

  <field name="id" type="int" indexed="true" stored="true" required="true" multiValued="false" />  <field name="name" type="string" indexed="true" stored="true"/>  <field name="last_modify" type="date" indexed="true" stored="true"/>  <field name="age" type="int" indexed="true" stored="true"/>  <field name="address" type="text_ik" indexed="true" stored="true"/>  <field name="tel" type="string" indexed="true" stored="true"/>

将修改的配置上传到zookeeper上,跟新索引

0 0
原创粉丝点击