`

Solr4.7从数据库导数据

    博客分类:
  • solr
 
阅读更多
实际工程应用中,从数据库导出数据创建索引再常见不过了,现在实验一下从数据库导入数据创建索引。



一、版本说明

Solr版本:4.7.0

数据库:sqlserver2005



二、配置步骤

1、  准备的jar包

1)  solr-dataimporthandler-extras-4.7.0.jar;在solr发布包solr-4.7.0\dist里面有

2)  solr-dataimporthandler-4.7.0.jar;在solr发布包solr-4.7.0\dist里面有

3)  jtds-1.2.2.jar;网上自己找

2、  修改solr的core配置

要想哪个core从数据库导入数据建索引就修改哪个core的配置。



2.1修改solrconfig.xml

添加如下这段配置:


<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">   
      <lst name="defaults">   
           <str name="config">data-config.xml</str>   
      </lst>   
</requestHandler>
 

2.2添加data-config.xml

在solrconfig.xml同一个文件夹内建立data-config.xml,其配置如下:


<?xml version="1.0" encoding="UTF-8" ?>  
  
<dataConfig>   
  <dataSource type="JdbcDataSource"   
              driver="net.sourceforge.jtds.jdbc.Driver"   
              url="jdbc:jtds:sqlserver://localHost/MyHousekeeper"   
              user="sa"   
              password="123456"/>   
  <document>   
        <entity name="pay" query="SELECT payId,payName,payMoney,payDescription,payDatetime FROM t_pay">  
        <field column="payId"          name="id" />  
        <field column="payName"        name="name" />  
        <field column="payMoney"       name="money" />  
        <field column="payDescription" name="description" />  
        <field column="payDatetime"    name="datetime" />  
        </entity>   
  </document>   
  
</dataConfig>  


2.3修改schema.xml

修改这个的目的是让solr知道有哪些field,是否需要索引,是否需要在索引库中存储原文,以及field类型。在上面的sql中有很多种数据类型。

payId:整型

payName:字符型

payMoney:浮点数

payDescription:大文本

payDatetime:日期时间格式

首先在schema.xml中申明field类型,配置在<types> </types>内。下面配置的sring类型是不会做分词处理的,视为完整的一个词,text_ik是一个中文分词器ik-analyzer,专门处理中文分词。

如下:

<types>  
   <fieldtype name="string"  class="solr.StrField"       sortMissingLast="true" omitNorms="true"/>  
   <fieldType name="long"    class="solr.TrieLongField"  precisionStep="0" positionIncrementGap="0"/>  
   <fieldType name="float"   class="solr.TrieFloatField" precisionStep="0" positionIncrementGap="0"/>  
   <fieldType name="date"    class="solr.TrieDateField"  precisionStep="0" positionIncrementGap="0"/>  
   <fieldType name="text_ik" class="solr.TextField">   
     <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>   
   </fieldType>   
  </types>  


然后申明field,field的名字应该和sql的查询结果集列名一致,如果不一致,需要在data-config.xml中entity标签中用field指明列和field的对应关系。

Field配置如下:


<fields>     
  <field name="_version_"       type="long"       indexed="true"  stored="true"/>  
   
  <field name="id"              type="long"       indexed="true"  stored="true"  multiValued="false" required="true"/>  
  <field name="name"            type="string"     indexed="true"  stored="true"  multiValued="false" />   
  <field name="money"           type="float"      indexed="true"  stored="true"  multiValued="false" />   
  <field name="description"     type="text_ik"    indexed="true"  stored="true"  multiValued="false" />   
  <field name="datetime"        type="date"       indexed="true"  stored="true"  multiValued="false" />   
 </fields>
 

其中如下field是必须的,用于标记版本信息,由solr内部自己维护。

<field name="_version_"       type="long"       indexed="true"  stored="true"/> 


三、导入测试
进入solr管理界面,command选择full-import全部导入;entity需要导入的实体,也就是配置的哪个sql,点击execute执行导入,如果数据很多的话需要导一段时间,不时的点一下refresh status刷新一下,看看导入是否完成,导入完成后会告诉你导入了多少数据,用了多少时间。如下图


做个查询测试,query,

q,description:米;查询description这个field名的米相关数据

wt,json;查询结果返回格式,默认json

execute query,执行查询,看到返回的json格式的查询结果了。




参考文献:

1)  http://www.chepoo.com/solr4-database-import-create-index.html

2)  http://blog.csdn.net/bruce128/article/details/17796705
分享到:
评论

相关推荐

    solr4.7从数据库导数据[归类].pdf

    Solr 4.7 是一个流行的全文搜索引擎,它允许用户通过数据导入处理器(DataImportHandler, DIH)从关系型数据库如 SQL Server 导入数据并建立索引,以实现快速搜索。在这个教程中,我们将深入理解如何在 Solr 4.7 中...

    solr4.7从数据库导数据[参照].pdf

    本文将详细介绍如何使用Solr 4.7从SQL Server 2005数据库中导入数据并构建索引的过程。 #### 二、所需环境与工具 1. **Solr 版本**:4.7.0 2. **数据库**:SQL Server 2005 3. **JAR包**: - `solr-...

    solr4.7服务搭建

    ### Solr 4.7 服务搭建详细指南 #### 一、环境准备 为了搭建 Solr 4.7 服务,我们需要确保以下环境已经准备好: ...通过以上步骤,用户可以成功搭建并配置好 Solr 4.7 服务,实现高效的数据索引和搜索功能。

    solr4.7服务器

    10. **数据导入**:Solr的DataImportHandler(DIH)允许从关系型数据库或其他数据源批量导入数据,并能自动更新索引。 综上所述,Solr4.7服务器是一个强大的搜索平台,提供了丰富的配置选项和扩展能力。通过适配JDK...

    apache solr guide 4.7

    ### Apache Solr Guide 4.7 知识点解析 #### 一、Apache Solr 概述 **Apache Solr** 是一个高性能、基于 Lucene 的全文检索服务系统,广泛应用于互联网企业的搜索服务中。Solr 提供了高度可扩展且稳定的搜索功能,...

    为Lucene/Solr 4.7重新打包的IKAnalyzer 2012 FF

    当前的IKAnalyzer官方版在用于Solr4以上高版本时,由于没有TokenizerFactory而造成诸多不便,于是有了为Lucene/Solr 4.7重新打包的IKAnalyzer 2012 FF

    solr4.7中文企业开发参考文档

    7. **处理多种数据格式**:Solr支持多种数据源,包括JSON、XML、CSV等,可以通过DataImportHandler(DIH)从关系型数据库中导入数据,实现对非结构化数据的检索。 8. **更新和优化索引**:Solr提供了实时索引更新和...

    solr4.7示例包含需要的jar包

    solr4.7+myeclipse示例包含需要的jar包 httpcore-4.3 httpmime-4.3.1 jtds-1.2.4 jul-to-slf4j-1.6.6 solr-core-4.7.0

    solr4.7+中文分词器IK Analyzer 2012FF_hf1

    4. **多种数据源**:Solr 支持多种数据导入方式,如 CSV、XML,还可以通过 DataImportHandler 连接数据库进行实时索引。 5. **丰富查询语法**:支持布尔运算符、短语查询、模糊查询等多种查询表达式。 6. **结果高亮...

    solr同步数据库需要jar包

    在Solr中,为了实现与数据库的实时同步,通常会采用增量索引策略,确保数据库中的新数据或更新能够及时反映到Solr索引中,提高系统的响应速度和效率。 标题中的"solr同步数据库需要jar包"指的就是在进行Solr和...

    solr4.7在tomcat6中部署

    ### Solr 4.7 在 Tomcat 6 中部署详细步骤及知识点解析 #### 一、Solr 和 Tomcat 简介 - **Solr**:Apache Solr 是一个高性能、采用 Java 开发的全文搜索引擎。它基于 Lucene 库,支持高度可扩展性而不牺牲性能,...

    solr7.4数据库导入Demo(mysql数据库)

    在Solr 7.4版本中,我们可以通过数据导入工具(DataImportHandler, DIH)来实现数据库中的数据导入,以便进行全文搜索和分析。本Demo将展示如何使用Solr 7.4与MySQL数据库集成,实现数据导入,并结合IK分词器提升...

    传智播客32期solr所用的数据库.txt

    通过以上分析可以看出,“传智播客32期solr所用的数据库”课程旨在为学员提供全面的Solr知识体系,涵盖从基础知识到实践应用的各个方面。学员不仅可以学到如何使用Solr进行高效的数据搜索,还能掌握如何将其与现有的...

    solr运行配置与数据库数据导入到solr

    本文主要介绍如何配置Solr以便在Tomcat环境下运行,并从数据库中导入数据。 首先,我们需要准备Solr的运行环境。这里我们使用的是Tomcat作为Solr的容器。以下是步骤: 1. **安装Solr和Tomcat**:确保已经安装了...

    Solr4.7-IKAnalyzer-分词配置-自定义IKTokenizerFactory

    在做IK分词器与solr过滤器结合是时候遇到一些问题, 在网上页找了一些jar包或者class,最后找到一个合适的源码,解决了问题。 另外根据产品需要使用了solr的WordDelimiterFilterFactory和ShingleFilterFactory。 ...

    solr连接数据库配置

    DIH是Solr的一个模块,它可以定期从外部数据源(如关系型数据库)中抓取数据并将其索引到Solr。这个过程通常分为四个主要步骤: Full Import、Delta Import、Commit 和 Optimize。 1. **Full Import**:这是第一次...

    solr在tomcat下的搭建和配置数据库

    这里通过`data-config.xml`文件配置了Solr的数据源连接以及SQL查询语句,使得Solr能够从数据库中读取数据并索引。 **总结** 以上步骤详细介绍了如何在Tomcat环境下搭建Solr服务,并配置Solr与数据库之间的连接。...

    Solr数据库插入(全量和增量)索引

    使用 Delta-importer,我们可以将新添加或更新的数据从 Oracle 数据库中提取出来,然后将其插入 Solr 索引库中。 索引配置文件 在 Solr 中,我们需要配置索引库的配置文件,以便 Solr 能够正确地索引数据。配置...

Global site tag (gtag.js) - Google Analytics