solr 全量 增量 导入

好久都没,记录博客了,其实写博客,对个人还是很有必要的。

Solr做全量索引(版本 7.7.1)

目的: 将数据库中的数据全部导入solr ,能显示出来!

全量导入:一次性全导入。

增量导入:数据库中,新增的,修改的数据导入==>所以数据库中必须有一列,用来记录最后修改时间,做增量时

1.先创建core

可以在管理中心创建,也可命令行创建

管理中心:

命令行: 由于不知道,输入,查看帮助:

-d confdir ==> 不是必须的,可设可不设

-p port 是你启动solr时的端口号

创建后 在 server->solr->中

主要关心三个配置文件:manager-schema,solrConfig.xml ,==>自己生成的

                                        data-config.xml ==》你自己创建的

它们都在你创建的core里

manager-schema ===>你数据库里的对象的属性,需要在这个文件里定义

比如:

  数据库中的last_update_time列,name中不能有下划线这种,比如:name="last_update_time",查出来了也显示不出来

 <field name="lastUpdateTime" type="date" indexed="true" stored="true" multiValued="false" />
<field>标签是定义数据库中列的属性的,比如在这里我把last_update_time定义为 type为date类型,indexed=true表示索引,stored=true表示储存。。。。等,你可以自己定义

但type="date" ==>date是solr中没有这个类型,是我用fieldType标签定义这个类型的

<fieldType name="date" class="solr.TrieDateField"  sortMissingLast="true" omitNorms="true"/>


<uniqueKey>id</uniqueKey> =》表明你的id

solrConfig.xml 主要是配置这个就行了:

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
   <lst name="defaults">
       <str name="config">data-config.xml</str> data-config.xml 名字自定义,然后在同级目录下创建
   </lst>
  </requestHandler>

你要问我,上面是干什么的,咱也不知道,咱也不敢乱说,大概根数据导入有关吧:

刚刚上面定义了一个data-config.xml 它的作用是写了数据库信息, 还有还有将数据库中数据转化为对象<entity>做映射

<dataConfig>
	<dataSource name="default-dataSource" type="JdbcDataSource"
		    driver="com.mysql.jdbc.Driver"
		    url="jdbc:mysql://localhost/solr"
		    user="root"
		    password="19971020jxh" />
        <document>               
            <entity name="people" pk="id" dataSource="default-dataSource" transformer="DateFormatTransformer"
              全量导入
              query="SELECT id,name,last_update_time FROM people "
              下面两句是增量导入
              deltaImportQuery="SELECT id,name,last_update_time FROM people WHERE id =${dataimporter.delta.id}" 
              deltaQuery="SELECT id FROM people WHERE  last_update_time  >  
                                                       最后修改时间       大于号
 '${dataimporter.last_index_time}'" >
==> 这里 一定不要少了冒号'  ,最后索引时间dataimport.properties中记录了

            <field column="id" name="id" />
            <field column="name" name="name"/>
            <field column="last_update_time" name="lastUpdateTime"  />
                           数据库列                 Solr中
           </entity>
        </document>
</dataConfig>	
你看,这里比较宽松,query是全量导入,但是全量导入,怎么个导入法,的sql,你可以完全自定义

 

还有jar包:solr-dataimport-*.jar和mysql-connector-java-某一版本.jar ,放到solr-> server->lib下

..等你配置好后,

启动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值