Solr与Mysql数据库的集成,实现全量索引、增量索引的创建。 
基本原理很简单:在Solr项目中注册solr的DataImportHandler并配置Mysql数据源以及数据查询sql语句。当我们通过Solr后台控制页面或者直接访问某个地址(后面给出),Solr就会调用DataImportHandler,连接数据库,根据sql语句查询数据,创建索引。 

示例solr版本:solr4.3.1 
约定Solr的安装目录,如E:\environment\solr-4.3.1为solr-home。 

1. 拷贝jar包 
将DataImportHandler所在的jar包和mysql的数据库驱动包Copy到solr-home/dist目录下。默认情况下该目录下已存在DataImportHandler所需的两个jar包。该Solr版本对应的jar包名字是:solr-dataimporthandler-4.3.1.jar、solr-dataimporthandler-extras-4.3.1.jar

2. 修改solr-home\example\solr\collection1\conf\solrconfig.xml文件 
a. 增加所需jar包引用配置:

  1. <lib dir="../../../dist/" regex="solr-dataimporthandler-.*\.jar" />
  2. <lib dir="../../../dist/" regex="mysql-connector-java-.*\.jar" />

b. 增加resultHandler配置

  1. <requestHandler name="/dataimport"
  2. class="org.apache.solr.handler.dataimport.DataImportHandler">
  3. <lst name="defaults">
  4. <str name="config">data-config.xml</str>
  5. </lst>
  6. </requestHandler>

3.  在solrconfig.xml的同级目录下创建data-config.xml文件,配置数据库连接和Solr与mysql数据的对应关系和查询语句。

  1. <dataConfig>
  2. <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver"
  3. url="jdbc:mysql://127.0.0.1/dbname" user="root" password="root"/>
  4. <document name="search_object">
  5. <entity name="talent"
  6. query="select id, gender, qq, msn, anualSalary, updateTime, addUserId
  7. from talent">
  8. <field column="anualSalary" name="salary"/>
  9. <field column="addUserId" name="userId"/>
  10. <!--Talent Names-->
  11. <entity name="talent_name" query="select value from talentname where talentId='${talent.id}'">
  12. <field column="value" name="name"/>
  13. </entity>
  14. </entity>
  15. </document>
  16. </dataConfig>

4. 重启Solr。 
批量导入(full-import): 
http://<host>:<port>/solr/dataimport?command=full-import&commit=y 
    
增量导入(delta-import): 
http://<host>:<port>/solr/dataimport?command=delta-import&commit=y 
    
导入状态查询(status): 
http://<host>:<port>/solr/dataimport 
    
重新装载配置文件(reload-config): 
http://<host>:<port>/solr/dataimport?command=reload-config 
    
终止导入(abort): 
http://<host>:<port>/solr/dataimport?command=abort

Solr与Mysql简单集成的更多相关文章

  1. Springboot+mybatis+dbcp+mysql简单集成

    1.添加依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>m ...

  2. Solr与MySQL查询性能对比

    本文简单对比下Solr与MySQL的查询性能速度. 测试数据量:10407608     Num Docs: 10407608 这里对MySQL的查询时间都包含了从MySQL Server获取数据的时 ...

  3. SSH整合框架+mysql简单的实现

    SSH整合框架+mysql简单的实现 1. 框架整合原理: struts2整合Spring 两种: 一种struts2自己创建Action,自动装配Service : 一种 将Action交给Spri ...

  4. python(pymysql)之mysql简单操作

    一.mysql简单介绍 说到数据库,我们大多想到的是关系型数据库,比如mysql.oracle.sqlserver等等,这些数据库软件在windows上安装都非常的方便,在Linux上如果要安装数据库 ...

  5. Maven+Spring+Hibernate+Shiro+Mysql简单的demo框架(二)

    然后是项目下的文件:完整的项目请看  上一篇 Maven+Spring+Hibernate+Shiro+Mysql简单的demo框架(一) 项目下的springmvc-servlet.xml配置文件: ...

  6. JAVA使用jdbc连接MYSQL简单示例

    以下展示的为JAVA使用jdbc连接MYSQL简单示例: import java.sql.DriverManager; import java.sql.ResultSet; import java.s ...

  7. Solr配置与简单Demo[转]

    Solr配置与简单Demo 简介: solr是基于Lucene Java搜索库的企业级全文搜索引擎,目前是apache的一个项目.它的官方网址在http://lucene.apache.org/sol ...

  8. mysql简单主从复制(一)

    MYSQL简单主从复制 master:172.25.44.1 slave:172.25.44.2 mysql5.7安装 master和slave均操作 准备rpm包:mysql-5.7.17-1.el ...

  9. MySql 简单统计查询消耗时间脚本

    MySql 简单统计查询消耗时间脚本 by:授客 QQ:1033553122 drop procedure if exists selectTime; delimiter; create proced ...

随机推荐

  1. linux系统清空文件内容

    本文转载至:http://www.jbxue.com/LINUXjishu/14410.html 本文介绍下,在linux系统中,清空文件内容的方法,使用cat命令.echo命令,将文件内容截断为0字 ...

  2. C# 中使用JSON - DataContractJsonSerializer

    C#中使用JSON不需要使用第三方库,使用.NET Framwork3.5自带的System.Runtime.Serialization.Json即可很好的完成JSON的解析. 关于JSON的入门介绍 ...

  3. Java并发包中常用类小结(二)

    6.ThredPoolExecutor ThredPoolExecutor是基于命令模式下的一个典型的线程池的实现,主要通过一些策略实现一个典型的线程池,目前已知的策略有ThreadPoolExecu ...

  4. [优先队列]HDOJ5289 Assignment

    题意:有多少个区间,区间内最大的数减去最小的数差小于k 对每个数它所在的区间,可以只往前找(类似dp的无后效性) 比如对位置3的数,可以往前找的区间是[3, 3], [2, 3], [1, 3], [ ...

  5. lintcode :Remove Duplicates from Sorted Array 删除排序数组中的重复数字

    题目: 删除排序数组中的重复数字 给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,并且返回新的数组的长度. 不要使用额外的数组空间,必须在原地没有额外空间的条件下完成.  样例 ...

  6. [topcoder] EllysNumberGuessing

    http://community.topcoder.com/stat?c=problem_statement&pm=12975 简单题 #include <cstdlib> #in ...

  7. 动态调整对话框属性(去掉标题栏,去掉边框,修改类似成Border:NONE样式)(调用ModifyStyle和ModifyStyleEx,然后调用SetWindowPos重新显示)

    // 动态修改对话框属性,去掉对话框标题栏,设置Border为NONE属性. if(dlg.GetSafeHwnd()) { dlg.ModifyStyle(WS_CAPTION, 0); // 去掉 ...

  8. Arcgis Engine最短路径分析

    ArcEngine 最短路径分析(源码)   using System; using ESRI.ArcGIS.Carto; using ESRI.ArcGIS.Geometry; using ESRI ...

  9. spring cloud config 入门

    简介 Spring cloud config 分为两部分 server client config-server 配置服务端,服务管理配置信息 config-client 客户端,客户端调用serve ...

  10. linux协议栈部分资料

    socket实现:http://blog.csdn.net/zhangskd(含有tcp/ip专栏) http://blog.chinaunix.net/uid-20528014-id-90573.h ...