[jjzhu学java]之solr4.9同步mysql数据

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。        可以将数据库中的数据导入到solr中,对于百万级别的数据可以快速响应查询。 1、安装jdk JDK版本需要1.7以上


Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。

       可以将数据库中的数据导入到solr中,对于百万级别的数据可以快速响应查询。

1、安装jdk

JDK版本需要1.7以上

2、安装solr

下载solr压缩包,解压安装包,进入到SOLR_HOME\example目录下,运行命令java –jar start.jar启动solr



Solr默认端口为8983,访问http://localhost:8983/solr,若有如下界面,则启动成功


3、导入并更新数据相关配置

       Solr提供了将数据库数据导入到solr索引库的功能(dataimport)

3.1、下载数据库驱动包

       下载mysql的驱动包,并放在{%SOLR_HOME%}contrib\dataimporthandler\lib目录下


3.2、配置solrconfig.xml

3.2.1、引用相关库

       solrconfig.xml包含了用于配置自身行为的绝大部分参数,其作用范围是当前core。位置在文件目录该文件位于{%solr_home%} example\solr\collection1\conf下。

       数据导入需要引用mysql的驱动包和DataImport所需的包。

       在文件中添加如下内容:

<libdir="../../../contrib/dataimporthandler/lib"regex=".*\.jar" />

       <lib dir="../../../dist/"regex="solr-dataimporthandler-\d.*\.jar" />

      

3.2.2、配置requestHandler

       在solrconfig.xml中加入如下配置:

<requestHandlername="/dataimport"class="org.apache.solr.handler.dataimport.DataImportHandler">

       <lst name="defaults">

         <str name="config">data-config.xml</str>

       </lst>

   </requestHandler>


3.3、配置schema.xml

              Schema.xml可以灵活的配置不同类型的字段,所在位置与solrconfig.xml同级。

              导入数据需要配置与数据库中字段一致的类型,在配置文件中


3.3、配置数据源

       在与solrconfig.xml同级目录下({%solr_home%}example\solr\collection1\con),建立与3.2.2中配置中同名的数据配置文件data-config.xml,


并添加如下内容

<dataConfig>

   <!-- driver: 数据库驱动名

        url:数据库路径

        user:数据库用户

        password:数据库密码

        batchSize:防止在导入数据过程中内存溢出

    -->

  <dataSource type="JdbcDataSource"

             driver="com.mysql.jdbc.Driver"

             url="jdbc:mysql://localhost/exercise"

              user="root"

              password=""

              batchSize="-1"/>

 

  <document>

   <!--要导入的表,可以配置多个

       并查询出要建立索引的字段

   -->

   <entity name="customerinfo" query="selectcustomerID,customerName,PID,telephone from customerinfo">

      <field column="customerID" name="id"/>

      <field column="customerID" name="customerID"/>

      <field column="customerName"name="customerName"/>

      <field column="PID" name="PID"/>

      <field column="telephone" name="telephone"/>

   </entity>

 </document>

</dataConfig>

4、导入数据

       访问solr界面



Command选择full-import,Entity选择要导入的表,再点击Execute便可导入数据


完成后会提示索引建立完成。

然后在Query界面可以输入相关查询条件进行查询


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
27天前
|
Java API 开发工具
【Azure Developer】Java代码实现获取Azure 资源的指标数据却报错 "invalid time interval input"
在使用 Java 调用虚拟机 API 获取指标数据时,因本地时区设置非 UTC,导致时间格式解析错误。解决方法是在代码中手动指定时区为 UTC,使用 `ZoneOffset.ofHours(0)` 并结合 `withOffsetSameInstant` 方法进行时区转换,从而避免因时区差异引发的时间格式问题。
133 3
|
29天前
|
SQL Java 关系型数据库
Java连接MySQL数据库环境设置指南
请注意,在实际部署时应该避免将敏感信息(如用户名和密码)硬编码在源码文件里面;应该使用配置文件或者环境变量等更为安全可靠地方式管理这些信息。此外,在处理大量数据时考虑使用PreparedStatement而不是Statement可以提高性能并防止SQL注入攻击;同时也要注意正确处理异常情况,并且确保所有打开过得资源都被正确关闭释放掉以防止内存泄漏等问题发生。
72 13
|
1月前
|
算法 Java
Java多线程编程:实现线程间数据共享机制
以上就是Java中几种主要处理多线程序列化资源以及协调各自独立运行但需相互配合以完成任务threads 的技术手段与策略。正确应用上述技术将大大增强你程序稳定性与效率同时也降低bug出现率因此深刻理解每项技术背后理论至关重要.
90 16
|
2月前
|
数据采集 JSON Java
Java爬虫获取1688店铺所有商品接口数据实战指南
本文介绍如何使用Java爬虫技术高效获取1688店铺商品信息,涵盖环境搭建、API调用、签名生成及数据抓取全流程,并附完整代码示例,助力市场分析与选品决策。
|
2月前
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
161 10
|
2月前
|
数据采集 存储 前端开发
Java爬虫性能优化:多线程抓取JSP动态数据实践
Java爬虫性能优化:多线程抓取JSP动态数据实践
|
3月前
|
SQL 存储 缓存
MySQL 如何高效可靠处理持久化数据
本文详细解析了 MySQL 的 SQL 执行流程、crash-safe 机制及性能优化策略。内容涵盖连接器、分析器、优化器、执行器与存储引擎的工作原理,深入探讨 redolog 与 binlog 的两阶段提交机制,并分析日志策略、组提交、脏页刷盘等关键性能优化手段,帮助提升数据库稳定性与执行效率。
|
3月前
|
人工智能 Java 关系型数据库
Java的时间处理与Mysql的时间查询
本文总结了Java中时间与日历的常用操作,包括时间的转换、格式化、日期加减及比较,并介绍了MySQL中按天、周、月、季度和年进行时间范围查询的方法,适用于日常开发中的时间处理需求。
|
安全 Java 容器
Java并发编程 - 线程不安全类 & 同步/并发容器之简介
Java并发编程 - 线程不安全类 & 同步/并发容器之简介
170 0
Java并发编程 - 线程不安全类 & 同步/并发容器之简介
|
安全 Java 容器
java并发编程笔记3-同步容器&并发容器&闭锁&栅栏&信号量
一.同步容器:   1.Vector容器实现了List接口,Vector实际上就是一个数组,和ArrayList类似,但是Vector中的方法都是synchronized方法,即进行了同步措施。保证了线程安全。
1619 0

热门文章

最新文章

推荐镜像

更多