`

solr dataImportHandler mysql增量索引

    博客分类:
  • solr
阅读更多
 
前一篇中全量索引的data-config.xml 的配置为
<dataConfig>
  <dataSource type="JdbcDataSource"
              driver="com.mysql.jdbc.Driver"
              url="jdbc:mysql://199.xxx.xxx.xxx/quentinxxz_com"
              user="qqq"
              password="qqq"/>
  <document>
    <entity name="product"
            query="select id, price,modify_time from tts_product">
       <field column="price" name="tts_price"/>
       <field column="modify_time" name="tts_modify_time"/>
    </entity>
  </document>
</dataConfig>
 
对应的增量索引的data-config.xml 的配置为
<dataConfig>
    <dataSource type="JdbcDataSource"
              driver="com.mysql.jdbc.Driver"
              url="jdbc:mysql://199.xxx.xxx.xxx/quentinxxz_com"
              user="qqq"
              password="qqq"/>
  <document>
    <entity name="product"
            query="select id, price,modify_time from tts_product"
               deltaImportQuery="select id, price,modify_time from tts_product where ID='${dih.delta.id}'"
               deltaQuery="select id from tts_product where modify_time >'${dih.last_index_time}'">
             <!---->
              
       <field column="price" name="tts_price"/>
       <field column="modify_time" name="tts_modify_time"/>
    </entity>
  </document>
</dataConfig> 
 
在conf/dataimport.properties中会自动存储最近一次索引的时间,solr正是以此为依据实现增量。但是前提确保你的数据库表中有类似modify_time这样的字段,好与可以做对比。
 
${dih.last_index_time}为dataimport.properties中的last_index_time信息
${dih.delta.id}为deltaQuery所查询出来的主键id 
 
conf/dataimport.properties中自动存储的信息
 
 
#Wed Jul 30 10:58:44 GMT+08:00 2014
last_index_time=2014-07-30 10\:58\:37
product.last_index_time=2014-07-30 10\:58\:37
 

query是获取全部数据的SQL
deltaImportQuery是获取增量数据时使用的SQL
deltaQuery是获取pk的SQL
parentDeltaQuery是获取父Entity的pk的SQL

 
注:从配置文件来看,增量的效率似乎很低,"select id, price,modify_time from tts_product where ID='${dih.delta.id}"给我们的感觉是每有一条纪录,就根据id去查一定数据库。其实不然,仔细查看dataImportHanlder的源码,会发现实际执行的sql语句已经做过处理了,DIH会将多个id进行组合,修改sql语句,再执行一次查询。

 

分享到:
评论

相关推荐

    跟益达学Solr5之增量索引MySQL数据库表数据

    在这个主题“跟益达学Solr5之增量索引MySQL数据库表数据”中,我们将深入探讨如何利用Solr 5来实现对MySQL数据库表数据的增量索引,以便在搜索时获得实时更新的结果。 首先,我们需要理解什么是增量索引。在传统的...

    solr增量导入更新索引包

    增量导入更新索引包是Solr中的一项重要功能,它允许系统仅处理自上次完整索引以来发生改变的数据,从而大大提升了效率并降低了资源消耗。下面将详细阐述Solr增量更新的相关知识点。 1. **Solr的索引机制** Solr...

    solr-dataimporthandler的jar包

    Solr 数据导入处理器(DataImportHandler,DIH)是 Apache Solr 的一个重要组件,它允许用户从各种数据源,如关系型数据库、CSV 文件等,批量导入数据到 Solr 索引中。这个功能极大地简化了数据同步和更新的过程,...

    solr6--solr-dataimporthandler-scheduler-1.1

    在Solr6版本中,DataImportHandler(DIH)是一个非常重要的特性,它允许Solr从外部数据源导入数据并建立索引。在"solr6--solr-dataimporthandler-scheduler-1.1"这个项目中,我们关注的重点是DIH的调度功能,也就是...

    使用MySQL作为SOLR的索引源

    4. **触发索引更新**:可以通过SOLR的API或Web界面来触发全量或增量数据导入,使SOLR根据MySQL中的最新数据更新索引。 接下来,我们关注到`schema.xml`文件。这是SOLR的核心配置文件,定义了索引的字段类型和字段。...

    solr5.3.1 导入mysql数据

    1. **创建 DataImportHandler (DIH)**: DIH 是 Solr 提供的一种工具,可以将外部数据源的数据导入到 Solr 索引中。在 `solrconfig.xml` 文件中启用并配置 DIH。 2. **配置 DataConfig.xml**: 这个文件定义了数据源...

    solr同步数据库需要jar包

    在Solr中,为了实现与数据库的实时同步,通常会采用增量索引策略,确保数据库中的新数据或更新能够及时反映到Solr索引中,提高系统的响应速度和效率。 标题中的"solr同步数据库需要jar包"指的就是在进行Solr和...

    跟益达学Solr5之从MySQL数据库导入数据并索引

    《跟益达学Solr5之从MySQL数据库导入数据并索引》这篇文章主要探讨了如何使用Apache Solr 5从MySQL数据库中导入数据并建立索引,以便进行高效的全文搜索。Solr是一款强大的开源搜索服务器,它提供了丰富的查询语言、...

    图解Solr6.6.0安装与MySQL配置

    ### 图解Solr 6.6.0安装与MySQL配置 #### 一、Solr简介与功能概述 Solr是一款开源的全文搜索引擎平台,基于Java语言开发,支持多种语言的数据索引与搜索。Solr拥有丰富的特性,如高度可扩展性、高性能、支持多种...

    solr入门教程

    本教程将引导你完成Solr的基本安装、配置以及数据库索引的建立,特别关注定时增量索引这一重要特性。 首先,从Apache官方网站下载Solr的最新稳定版本,例如5.1.0。解压缩文件到任何你喜欢的目录,比如F盘。接下来,...

    solr7.5手动倒mysql库需要用到的jar.zip 两个jar都在压缩包里

    在与数据库集成的过程中,Solr提供了DataImportHandler(DIH)这一特性,使得能够从关系型数据库如MySQL导入数据到索引中。在你提供的压缩包中,包含了两个关键的jar文件,它们是实现Solr 7.5从MySQL数据库导入数据...

    图解Solr5.3.1与MySQL配置【原创】

    在`[solrhome]/test/conf`目录下创建或修改`schema.xml`文件,以确保Solr能够正确解析并索引来自MySQL的数据。 - **字段映射**:将数据库字段映射到Solr Document的Field上。 - **数据类型**:定义字段的数据类型,...

    Solr3.6用DIH组件进行MySQL数据库全文索引[参照].pdf

    在Solr中,DataImportHandler(DIH)组件是一个强大的工具,用于从各种外部数据源,如关系型数据库(如MySQL)中导入数据并建立全文索引。在本例中,我们将探讨如何使用Solr 3.6版本的DIH组件来对MySQL数据库中的...

    solr-dataimportscheduler-1.4.jar 增量定时同步数据到solr.rar

    这个jar包的核心功能是DataImportHandler(DIH),它是一个内置在Solr中的模块,用于将外部数据源(如关系型数据库)的数据导入到Solr索引中。DIH支持全量导入和增量导入,这使得Solr可以保持与数据库的实时同步,...

    Solr3.6用DIH组件进行MySQL数据库全文索引[归纳].pdf

    在本文中,我们将深入探讨如何使用Apache Solr 3.6的数据导入处理(DataImportHandler,简称DIH)组件从MySQL数据库中创建全文索引。Solr是一个强大的、开源的企业级搜索平台,而DIH是Solr的一个核心特性,允许用户...

    solr-8.2.0.rar

    创建并配置好Core后,通过Solr的DataImportHandler执行全量或增量数据导入。在管理界面的Core操作中,选择`Dataimport`,然后点击`Execute Full Import`按钮。这将读取`data-config.xml`中的配置,从MySQL中抽取数据...

    solr-dataimportscheduler-1.1.1.jar

    因此,Solr-dataimportscheduler插件应运而生,它的核心作用就是实现对Solr索引的增量更新,只导入自上次导入以来发生变化的数据,从而大大提高了数据同步的效率和系统的响应速度。 这个插件的1.1.1版本可能包含了...

Global site tag (gtag.js) - Google Analytics