`
qindongliang1922
  • 浏览: 2189431 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:117687
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:126088
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:60040
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:71416
社区版块
存档分类
最新评论

solr4.2增量索引之同步(修改,删除,新增)

    博客分类:
  • Solr
阅读更多
                             solr增量索引配置
1.在进行增量索引前,首先要弄懂几个必要的属性,以及数据库建表事项,和dataimporter.properties
                   data-config.xml里面的数据
  <!--  transformer 格式转化:HTMLStripTransformer 索引中忽略HTML标签   --->
  <!--  query:查询数据库表符合记录数据   --->
  <!--  deltaQuery:增量索引查询主键ID    --->    注意这个只能返回ID字段
  <!--  deltaImportQuery:增量索引查询导入数据  --->
  <!--  deletedPkQuery:增量索引删除主键ID查询  ---> 注意这个只能返回ID字段
                   数据库配置注意事项
1.如果只涉及添加,与修改业务,那么数据库里只需额外有一个timpstamp字段
就可以了,默认值为当前系统时间,CURRENT_TIMESTAMP(笔者的数据为mysql的)
2.如果还涉及删除业务,那么数据里就需额外再多添加一个字段isdelete,int类型的
用0,1来标识,此条记录是否被删除,当然也可以用其他字段标识,ture或false都可以

                             dataimporter.properties
这个配置文件很重要,它是用来记录当前时间与上一次修改时间的,通过它能够找出,那些,新添加的,修改的,或删除的记录

       下面为笔者当时测试时的一个演示,其中添加,修改,删除,都涉及了
  
    <dataConfig>   
	     <!---   此段话配置的是一个MySQL的数据源,(数据源也可以配置在solrconfig.xml中)  --->
        <dataSource name="mydb" type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/test" user="root" password="ninemax"/>
		
		
		<document>
		     <!--  下面分别来介绍属性(如有错误,欢迎指出) -->
			 <!--  pk="ID" 这个很有必要,因为其中的增量索引查询主键ID时需要  -->
			  <!--  dataSource="mydb"   这个引用名字是引用上面数据源的名字 -->
			  <!--  name="myinfo"   这个名字必须唯一,存在多个实体时 -->
			   <!--  query="select  *  from myinfo WHERE isdelete=0   query查询是指
               查询出表里所有的符合条件的数据,因为笔者测试的有删除业务,所以
			   where  后面有一个限定条件isdelete=0,意思为查询未被删除的数据
			   
			   (注意这个query查询只对第一次全量导入有作用,对增量导入不起作用)
			   -->
			   <!--
			   deltaQuery="select ID  from myinfo where my_date > '${dataimporter.last_index_time}'" 
			   deltaQuery的意思是,查询出所有经过修改的记录的ID
			   可能是修改操作,添加操作,删除操作产生的
			   (此查询只对增量导入起作用,而且只能返回ID值)
			   -->
			   <!--
			   deletedPkQuery="select ID from myinfo where isdelete=1"	
			   此操作值查询那些数据库里伪删除的数据的ID(即isdelete标识为1的数据)
			   solr通过它来删除索引里面对应的数据
			   (此查询只对增量导入起作用,而且只能返回ID值)
			   -->
			   <!--
			    deltaImportQuery="select * from myinfo where ID='${dataimporter.delta.ID}'"
				次查询是获取以上两步的ID,然后把其全部数据获取,根据获取的数据
				对索引库进行更新操作,可能是删除,添加,修改
				(此查询只对增量导入起作用,可以返回多个字段的值,一般情况下,都是返回所有字段的列)
			   -->
			   
			   
			 
		     <entity pk="ID"  dataSource="mydb" name="myinfo" query="select  *  from myinfo WHERE isdelete=0 " 
			  deltaQuery="select ID  from myinfo where my_date > '${dataimporter.last_index_time}'" 
              deletedPkQuery="select ID from myinfo where isdelete=1"			  
			  deltaImportQuery="select * from myinfo where ID='${dataimporter.delta.ID}'"
			  
			 >
			 <!--  此条记录有必要说一下,ID指定大写的,与上面语句中的对应起来---->
			 
			  <field column="ID" name="id"/>
		       <field column="name" name="name"/>
			   <field column="address" name="address"/>
			   <field column="age" name="age"/>
			    <field column="my_date" name="my_date"/>
				 <field column="isdelete" name="isdelete"/>
		      </entity>
			 

		</document>
		
    </dataConfig>  
   
        


分享到:
评论

相关推荐

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

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

    ik分词包 用于lucene4.2和solr4.2的最新包

    自从lucene和solr推出4.0版本后 ik分词的调用接口已经不适用了,虽说ik最新ff版适用于solr4.0 但是solr4.2出来之后发现又不适用了,本人花了一点功夫熟悉solr4.2的分词调用接口补写了一个IkTokenizerFactory类 经...

    maven 搭建solr4.2源码环境

    maven 整合solr4.2环境,另外整合了solr-data-import源码环境,资源10分,十分不贵!有需要的朋友请下载吧。花了我3个小时的时间整理的。下载后,使用maven导入即可使用,升级solr版本也比较方便。本环境使用了...

    solr增量导入更新索引包

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

    Solr数据库插入(全量和增量)索引

    Solr 数据库插入全量和增量索引 Solr 是一个基于 Lucene 的搜索引擎,可以快速高效地对大量数据进行索引和查询。在实际应用中,我们需要将数据插入 Solr 索引库中,以便实现高效的搜索功能。本文将详细介绍 Solr ...

    solr定时增量更新索引所需jar包

    solr定时增量更新索引所需jar包包括:solr-dataimporthandler-4.0.0.jar、solr-dataimportscheduler.jar(6.x适用)、solr-dataimporthandler-extras-4.0.0.jar。

    solr6 增量导入demo

    增量导入是针对大型数据集优化的一种策略,当数据库中的数据发生变化时,Solr并不需要重新导入所有数据,而是仅仅导入那些新增或修改过的记录。这大大减少了索引时间和存储空间的需求。 二、实现机制 1. ...

    solr同步数据库需要jar包

    增量索引是Solr中一种优化性能的技术,它只索引自上次索引以来数据库中新增或修改的记录,而不是每次都全量索引所有数据。这样可以大大减少索引时间和资源消耗,尤其适用于大数据量的场景。 要实现Solr与MySQL等...

    Solr 查询,索引

    3. **倒排索引**:Solr的核心特性之一,将每个Token与它在哪些文档中出现的信息关联起来,形成倒排索引。这大大加快了查询速度。 4. **更新与删除**:Solr支持对已有文档的更新和删除,这涉及到索引的实时维护,...

    solr定时增量更新jar包1.4

    "solr定时增量更新jar包1.4"是专门为Solr设计的一个组件,它允许用户设置定时任务来自动检测和导入新的或者修改过的数据,从而保持索引与数据库或其他数据源的一致性。 这个组件主要依赖于`apache-solr-...

    Solr-4.2-api-docs.chm

    这是最新的全文检索引擎Solr4.2 Solrj API 包含全部的api 其中还有部分官方文档,

    solr 定时增量更新jar包

    总的来说,"solr 定时增量更新jar包"是Solr实现高效、自动化的数据同步策略的重要工具,通过合理的配置和使用,可以确保Solr索引始终与数据源保持一致,提升系统的搜索性能和用户体验。在实际部署时,用户需要注意...

    基于solr的网站索引架构(一)

    在本篇博文中,我们将探讨基于Apache Solr构建的网站索引架构,这是搜索引擎技术中的一个关键组件。Solr是一个开源、高性能的全文检索服务,它允许开发者为大量数据建立索引,从而实现快速的搜索功能。在"基于solr的...

    跟益达学Solr5之索引网络上远程文件

    4. **增量索引与更新**:为保持索引的实时性,Solr支持增量索引和实时更新。通过监控文件的修改时间或元数据,可以实现只索引新内容或变化内容,降低系统开销。 5. **性能优化**:索引远程文件会带来额外的网络延迟...

    跟益达学Solr5之索引文件夹下所有文件

    本教程将基于"跟益达学Solr5之索引文件夹下所有文件"的主题,深入探讨如何在Solr5中对文件夹内的所有文件进行索引。 首先,理解索引的概念至关重要。在信息检索领域,索引是一种数据结构,用于快速查找文档中的特定...

    java solr solrj 带账号密码增量查询添加索引

    主要讲解了 solr客户端如何调用带账号密码的solr服务器调用,实现添加索引和查询索引,以及分组查询

    solr-4.2.0

    1. **Lucene升级**:Solr 4.2.0基于Lucene 4.2,这带来了许多底层优化,包括更快的搜索速度和更高效的索引构建。Lucene的更新通常会带来更好的分词器和过滤器,使得对各种语言的支持更为完善。 2. **...

    solr增量更新架包apache-solr-dataimportscheduler.jar

    增量更新是Solr的一个关键特性,它允许系统仅处理自上次完整索引以来发生更改的数据,从而提高了性能并降低了资源消耗。"apache-solr-dataimportscheduler.jar" 是一个专门为Solr设计的扩展包,用于实现自动化的数据...

    solr6定时增量更新

    solr6定时增量更新jar包

Global site tag (gtag.js) - Google Analytics