Solr与Mysql简单集成

标签: solr mysql | 发表时间:2014-02-20 14:51 | 作者:该用户名已经存在
出处:http://www.iteye.com
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包引用配置:
<lib dir="../../../dist/" regex="solr-dataimporthandler-.*\.jar" />
<lib dir="../../../dist/" regex="mysql-connector-java-.*\.jar" />


b. 增加resultHandler配置
<requestHandler name="/dataimport"   
        class="org.apache.solr.handler.dataimport.DataImportHandler">      
		<lst name="defaults">      
			<str name="config">data-config.xml</str>      
		</lst>      
</requestHandler>


3.  在solrconfig.xml的同级目录下创建data-config.xml文件,配置数据库连接和Solr与mysql数据的对应关系和查询语句。
<dataConfig>  
  <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver"   
   url="jdbc:mysql://127.0.0.1/dbname" user="root" password="root"/>  
   <document name="search_object"> 
      <entity name="talent" 
	query="select id, gender, qq, msn, anualSalary, updateTime, addUserId
              from talent">  
        <field column="anualSalary" name="salary"/>  
        <field column="addUserId" name="userId"/>  
   
		<!--Talent Names-->
        <entity name="talent_name" query="select value from talentname where talentId='${talent.id}'">  
          <field column="value" name="name"/>  
        </entity>  
      </entity>  
   </document>  
</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

已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [solr mysql] 推荐:

Solr与Mysql集成指南

- sun - 草根网:互联网界的读者文摘
在《企业级搜索引擎Solr使用入门指南》及《企业级搜索引擎Solr交流》中对Solr的使用做了简单介绍. 在数据库驱动的应用中,当时采....

Solr与Mysql简单集成

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

Solr之Mysql数据库全量、增量同步-yellowcong

- - CSDN博客编程语言推荐文章
1 修改solrconfig.xml. 修改solrconfig.xml 文件. 2 创建data-config.xml. 在solrconfig.xml的同级目录下创建data-config.xml文件,配置数据库连接和Solr与mysql数据的对应关系和查询语句. 使用的是Mysql测试的,我的oracle完犊子了.

Solr SpellCheck 应用

- - 开源软件 - ITeye博客
通过对各类型的SpellCheck组件学习,完成项目拼写检查功能. 本文使用基于拼写词典的实现方式,solr版本为5.3.0. SpellCheck 简述. 拼写检查是对用户错误输入,响应正确的检查建议. 比如输入:周杰轮,响应:你是不是想找 周杰伦. Solr的拼写检查大致可分为两类,基于词典与基于Solr索引.

Solr DocValues详解

- - 企业架构 - ITeye博客
什么是docValues. docValues是一种记录doc字段值的一种形式,在例如在结果排序和统计Facet查询时,需要通过docid取字段值的场景下是非常高效的. 为什么要使用docValues. 这种形式比老版本中利用fieldCache来实现正排查找更加高效,更加节省内存. 倒排索引将字段内存切分成一个term列表,每个term都对应着一个docid列表,这样一种结构使得查询能够非常快速,因为term对应的docid是现成就有的.

solr的使用

- - Web前端 - ITeye博客
solr的原理不和大家一一讲述,主要讲solr在使用过程中的注意事项.  首先是安装solr,安装步骤省略. (不要说我懒,安装步骤导出都是. 成功之后 需要在solr里面建立一个针对你的业务的服务,我想建立一个叫做discuz的服务. 然后你在你的solr目录 :solr-5.5.3/server/solr/  下看见了discuz   ,这是你刚刚创建的,针对某一业务的整个搜索配置都是在这个目录下配置的.

Solr调优参考

- - 淘宝网通用产品团队博客
共整理三部分,第一部分Solr常规处理,第二部分针对性性处理,前者比较通用,后者有局限性. 务必根据具体应用特性,具体调节参数,对比性能. 具体应用需要全面去把控,各个因素一起起作用. 第一部分. E文连接 http://wiki.apache.org/solr/SolrPerformanceFactors.

Solr之缓存篇

- - 淘宝网综合业务平台团队博客
Solr在Lucene之上开发了很多Cache功能,从目前提供的Cache类型有:. 而每种Cache针对具体的查询请求进行对应的Cache. 本文将从几个方面来阐述上述几种Cache在Solr的运用,具体如下:. (1)Cache的生命周期. (2)Cache的使用场景. (3)Cache的配置介绍.

Solr主从备份

- - 研发管理 - ITeye博客
SOLR复制模式,是一种在分布式环境下用于同步主从服务器的一种实现方式,因之前提到的基于rsync的SOLR不同方式部署成本过高,被SOLR1.4版本所替换,取而代之的就是基于HTTP协议的索引文件传输机制,该方式部署简单,只需配置一个文件即可. 以下讲解具体操作步骤: . 步骤分主服务器和从服务器,允许有多个从服务器,即从服务器的配置一样.

solr相似匹配

- - CSDN博客推荐文章
相似匹配   在我们使用网页搜索时,会注意到每一个结果都包含一个 “相似页面” 链接,单击该链接,就会发布另一个搜索请求,查找出与起初结果类似的文档. Solr 使用 MoreLikeThisComponent(MLT)和 MoreLikeThisHandler 实现了一样的功能. 如上所述,MLT 是与标准 SolrRequestHandler 集成在一起的;MoreLikeThisHandler 与 MLT 结合在一起,并添加了一些其他选项,但它要求发布一个单一的请求.