Solr5中如何增量索引MySQL数据库表中的数据,这个问题之前有某个童鞋问过我,今天午休时间就腾空更新篇博客,希望能帮助到你们。
为了测试方便,我首先从京东网站弄了点测试数据,如图:
这里要声明下,我不是在给京东商城打广告哈,仅仅是随便找个网站弄点测试数据,这部分工作全是我无聊手动插入MySQL数据库中的,如图:
建表SQL以及测试数据,我待会儿会上传到底下的附件里。然后你需要在solrconfig.xml配置文件中启用全量导入和增量导入请求处理器,如图:
然后分别配置你的data-config.xml和delta-data-config.xml配置文件,具体配置如图:
<dataConfig> <dataSource name="jdbcDataSource" type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8" user="root" password="1234"/> <document name="mobile-doc"> <entity dataSource="jdbcDataSource" name="mobile" query="select * from mobile"> <field column="id" name="id"/> <field column="pname" name="productName"/> <field column="price" name="price"/> <field column="color" name="color"/> <field column="brand" name="brand"/> <field column="wlan" name="wlan"/> </entity> </document> </dataConfig>
<dataConfig> <dataSource name="jdbcDataSource" type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8" user="root" password="1234"/> <document name="mobile-doc"> <entity dataSource="jdbcDataSource" name="mobile" query="select * from mobile" deltaImportQuery="select * from mobile where id= ${dih.delta.id}" deltaQuery="select id from mobile where last_update_time > '${dih.last_index_time}'"> <field column="id" name="id"/> <field column="pname" name="productName"/> <field column="price" name="price"/> <field column="color" name="color"/> <field column="brand" name="brand"/> <field column="wlan" name="wlan"/> </entity> </document> </dataConfig>
query:表示一个查询SQL,根据你提供的查询SQL来做全量导入的
deltaQuery:表示一个查询SQL语句,会根据主键id去查询这条数据,根据比对最后一次更新时间,如果最后一次更新时间大于deltaimport.properties配置文件中记录的last_index_time时间,那表示该数据更新过了,需要做增量导入,每次不管是全量导入还是增量导入,deltaimport.properties配置文件中的last_index_time时间都会更新,deltaimport.properties配置文件若不存在也会自动创建,不需要你手动创建。
deltaImportQuery:表示一个SQL语句,即如何去加载当前数据,一般是根据主键id去查询。
然后你需要配置下schema.xml定义一些域,如图:
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" /> <field name="productName" type="text_ik" indexed="true" stored="true" omitNorms="true" multiValued="false"/> <field name="price" type="double" indexed="true" stored="true" /> <field name="color" type="string" indexed="true" stored="true" sortMissingLast="true"/> <field name="brand" type="string" indexed="true" stored="true" sortMissingLast="true"/> <field name="wlan" type="text_ik" indexed="true" stored="true" /> <uniqueKey>id</uniqueKey>
最后重启你的Tomcat开始测试,如图:
先做次全量导入
全量导入成功后,请手动往数据库表里添加一条测试数据用于增量索引测试,如图:
然后请切换到增量导入,如图:
接着看图:
OK,大功告成,如果你在实践过程中出现任何问题,请联系我,solr_home整个目录以及测试数据库SQL我都会打包上传到底下的附件里,供你们参考。lib目录下依赖的jar我没上传,因为Jar包体积太大,ITeye上传不了,如果你找不到jar包,请参阅我的这篇博客
《跟益达学Solr5之索引文件夹下所有文件》,在那篇博客里有提供jar包的百度网盘下载地址,特此提醒!!!
如果你还有什么问题请加我Q-Q:7-3-6-0-3-1-3-0-5,
或者加裙
一起交流学习!
相关推荐
《跟益达学Solr5之从MySQL数据库导入数据并索引》这篇文章主要探讨了如何使用Apache Solr 5从MySQL数据库中导入数据并建立索引,以便进行高效的全文搜索。Solr是一款强大的开源搜索服务器,它提供了丰富的查询语言、...
《Solr5批量索引JSON数据详解》 在大数据时代,高效检索与分析大量文本信息是企业业务中不可或缺的一部分。Apache Solr,作为一款强大的开源搜索引擎,提供了对JSON等多格式数据的快速索引和查询能力。本篇将深度...
总之,"跟益达学Solr5之索引文件夹下所有文件"教程涵盖了从安装配置Solr5,创建核心,配置文件索引,到数据导入,查询优化以及监控维护等一系列步骤。通过学习这些内容,你可以掌握如何利用Solr5构建一个强大的文件...
本篇我们将深入探讨如何利用Solr5来索引网络上的远程文件,让数据检索的触角延伸到互联网的每一个角落。 首先,理解Solr的基本架构至关重要。Solr是以Lucene为基础的搜索服务器,它提供了分布式、可扩展、高可用的...
在本篇博文中,“跟益达学Solr5之使用Tika从PDF中提取数据导入索引”,我们将探讨如何利用Apache Solr 5和Tika这两个强大的开源工具,从PDF文档中抽取数据并将其有效地导入到Solr索引库中。Apache Solr是一款功能...
《跟益达学Solr5之玩转post.jar》这篇博文主要探讨了如何利用Solr的`post.jar`工具进行数据导入,这是Solr提供的一个非常实用的功能,用于快速将各种格式的数据导入到Solr索引中。在这个过程中,我们不仅会了解`post...
本篇将围绕“跟益达学Solr5之使用IK分词器”这一主题,详细讲解如何在Solr5中集成并运用IK分词器,以及它的工作原理和优化技巧。 首先,让我们了解下什么是分词器。在中文搜索引擎中,由于中文句子没有明显的分隔符...
《跟益达学Solr5之使用Ansj分词器》 在中文信息检索和文本分析领域,分词是至关重要的第一步。Solr,作为一款强大的开源搜索平台,提供了多种分词器供用户选择,其中之一就是Ansj分词器。这篇文章将深入探讨如何在...
《Solr5拼音分词深度解析》 在深入探讨Solr5的拼音分词之前,首先需要理解什么是Solr。Apache Solr是一款基于Lucene的开源搜索引擎,它提供了全文搜索、命中高亮、 faceted search(面向切面的搜索)、自动完成、...
《Solr5与MMSeg4J分词器深度解析》 在中文信息检索和文本分析领域,分词是至关重要的第一步。Solr,作为一款强大的开源全文搜索引擎,提供了多种分词器供用户选择,其中之一就是MMSeg4J。本篇文章将带你深入学习...
国内较早接触Solr的技术专家之一,长期致力于Solr的技术研究、实践和生产环境部署,是Solr社区的积极参与者和实践者,以让Solr技术能够在中国得到广泛应用不遗余力并乐此不疲。现就职于国美金融,曾就职于各种大大...
该资源为utf-8格式的csv文件,可以直接根据列名建表后插入mysql数据库表。但使用excel打开时会出现中文乱码,可以先用记事本将其编码格式改为ANSI,再使用excel打开。 3. 适合人群: 初中级数据分析师,1-3年相关...
2. **Full-text Search**:MySQL 5.5 引入了全文索引和搜索功能,这使得在大量文本数据中进行复杂查询变得更加高效。 3. **分区功能增强**:表分区是优化大数据处理的一种手段,5.5 版本增加了更多的分区策略和优化...
MySQL是世界上最受欢迎的关系型数据库管理系统之一,尤其在Web应用程序中被广泛应用。对于初学者来说,掌握MySQL的基础知识是至关重要的,因为这将为理解和处理数据提供坚实的基础。本压缩包包含了一系列针对初级...