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. android 解析XML方式(三)

    上一节中,我们使用SAX方式解析xml文档, SAX方式是基于事件驱动的.当然android的事件机制是基于回调函数的.在这一节中,我们用另外一种方式解析xml文档,这种方式也是基于事件驱动的,与SA ...

  2. 如果使用得当,MySQL 也可以化身 NoSQL

    [编者按]随着互联网和移动互联网的发展,各个机构都需要支撑远超过以往的数据.而在这个需求的刺激下,IT 领域出现了大量数据处理技术,其中之一就是 NoSQL .灵活的数据类型,高效的处理能力,让 No ...

  3. 【redis】02string类型和hash类型

    Redis的数据类型   Redis主要分为五个数据类型,一个是string,最简单的一个数据类型,hash,list, 还有set集合,还有zset有序集合,这是咱们redis的五种基础类型, 接下 ...

  4. 【设计模式六大原则3】依赖倒置原则(Dependence Inversion Principle)

      定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象:抽象不应该依赖细节:细节应该依赖抽象. 问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成.这种场景下,类 ...

  5. POJ 1716

    #include <iostream> #include <algorithm> #define MAXN 20005 using namespace std; int _m[ ...

  6. Rockethon 2015

    A Game题意:A,B各自拥有两堆石子,数目分别为n1, n2,每次至少取1个,最多分别取k1,k2个, A先取,最后谁会赢. 分析:显然每次取一个是最优的,n1 > n2时,先手赢. 代码: ...

  7. 表单插件——form

    表单插件——form 通过表单form插件,调用ajaxForm()方法,实现ajax方式向服务器提交表单数据,并通过方法中的options对象获取服务器返回数据,调用格式如下: $(form). a ...

  8. 恢复被win7覆盖的Ubuntu Grub

    情景:本本装有Ubuntu 12.04 + Win7 32.重装Win7 64后,Ubuntu启动菜单被覆盖. 恢复的方法有多种,思路都一样.第一步,进入Linux环境:第二步.修改Grub使其重新覆 ...

  9. SaaS系列介绍之十二: SaaS产品的研发模式

    1 产品研发模式慨述 产品研发模式是企业战略的重点.产品研发路线决定了一系列的管理手段和团队建设问题.也是企业的整理策略和经营思路.产品研发模式贯穿着整个产品的生命周期,从市场调研.立项.需求分析.慨 ...

  10. *[hackerrank]Volleyball Match

    https://www.hackerrank.com/contests/w1/challenges/volleyball-match 此题不错,首先可以看出是DP,S(x, y)= S(x - 1, ...