如需要使用到Solr中的dataimporthandler增量导入功能,则还需要引入两个所依赖的jar包,在上一篇随笔中所提到的下载的Solr项目文件solr-4.10.3\dist目录下可以找到所依赖的两个jar包,即

将这两个jar包复制到我们本地Solr服务器下的WEB-INF\lib目录下,同时需在索引库中的conf目录下,添加data-config.xml配置文件

,data-config.xml则是用来配置数据源,dataimport.properties则是记录生成索引库的时间,该文件会在索引库数据创建完毕后,自动生成。

完成以上两步后,还有非常重要的一步就是,将dataimport-handler处理器与data-config.xml相结合的配置

  在索引库中的conf目录下存有一个名为solrconfig.xml的配置文件,需要在该配置文件中添加以下配置文件

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

  

  从而在Solr可视化管理页面中的Dataimport菜单中可以看到如下效果

  

  接下来就是对data-config.xml文件与相匹配的schema.xml进行相应的配置,才能最终实现数据源的导入

  

data-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@192.168.10.32:2016:sxlib" user="TT" password="TT"/>
<document> <entity name="CIP_Book" transformer="ClobTransformer" pk="GID" query="select cb.gid gid,
cb.gid bibGid,
decode(cb.bib_name,
null,
'未知',
regexp_replace(cb.bib_name, '[,|,|\|| | |\(|\)|\.|\[|\]|\+|-|!|\{|\}|^|~|\#|\?|:|;|&amp;|]', '')) bibName,
decode(cb.author,
null,
'未知',
regexp_replace(cb.author, '[,|,|\|| | |\(|\)|\.|\[|\]|\+|-|!|\{|\}|^|~|\#|\?|:|;|&amp;|]', '')) author,
decode(cb.pub_name, null, '未知', cb.pub_name) pubName,
ct.cre_date updatetime
from cip_bookinfo cb
join cip_bookdetail ct on cb.gid = ct.bib_gid" > <field column="gid" name="gid"/> <field column="bibGid" name="bibGid"/>
<field column="bibName" name="bibName"/>
<field column="author" name="author"/> <field column="updatetime" name="updateTime"/> </entity>
</document>
</dataConfig>

 在schema.xml中,Solr已经内置了很多field,但是为了符合开发需要,需要自定义符合自身需求的field,如在data-config.xml中,根据数据所查询出的书名、作者、出版社三个字段,那么在schema.xml则定义三个与之匹配的三个field,这样数据源的数据才能最终交予Solr进行管理

   <field name="bibName" type="text_ik" indexed="true" stored="true"/>
<field name="author" type="text_ik" indexed="true" stored="true"/>
<field name="pubName" type="text_ik" indexed="true" stored="true"/>

另外需要注意的是,根据数据源数据库的类型,导入对应的数据库依赖包。

在Dataimport菜单页中点击Exceute,则会根据所配置好的数据源,实现数据导入

数据导入完毕后,通过Query菜单页可实现对数据的查询功能

通过Solr所提供的Dataimporthandler实现数据源的导入的更多相关文章

  1. [转]solr DataImportHandler 解决mysql 表导入内存溢出问题

    最近一个项目要用到solr做全文检索,开始盲人摸象. 用tomcat 7 开始配置,开始正常,但是遇到cookie里有中文就报错. 无奈,换tomcat 6, 结果DataImportHandler ...

  2. solr搜索引擎配置使用mongodb作为数据源

    环境说明: 操作系统:由于是使用的docker直接拉取的镜像部署的,系统是LINUX环境 mongodb: 4.0.3 solr: 7.5.0 python: 3.5 配置mongodb 1.拉取mo ...

  3. CDH离线数据导入solr:利用MapReduceIndexerTool将json文件批量导入到solr

    场景描述:前段时间,将实时数据通过kafka+flume+morphline的方式接入到solr中.新进来的数据已经可以在solr中看到了,但是以前的历史数据还没有导入solr. CDH提供利用Map ...

  4. solr特点六: DIH (从数据源导入数据)

    在这个结构化数据和非结构化数据的数量都很庞大的年代,经常需要从数据库.XML/HTML 文件或其他数据源导入数据,并使数据可搜索.过去,要编写自定义代码才能创建到数据库.文件系统或 RSS 提要的自定 ...

  5. solr服务中集成IKAnalyzer中文分词器、集成dataimportHandler插件

    昨天已经在Tomcat容器中成功的部署了solr全文检索引擎系统的服务:今天来分享一下solr服务在海量数据的网站中是如何实现数据的检索. 在solr服务中集成IKAnalyzer中文分词器的步骤: ...

  6. solr与.net系列课程(三)solr连接数据库

     solr与.net系列课程(三)solr连接数据库 上一章直接讲述的配置文件把大部分人看的很迷惑,大家都想听的是solr到底是怎么用的,好,这一节我们就开始链接数据库,首先讲一下连接之前都要配置哪些 ...

  7. 【转】Solr从数据库导入数据(DIH)

    本文转自:http://blog.csdn.net/xiaoyu714543065/article/details/11849115 一. 数据导入(DataImportHandler-DIH) DI ...

  8. SOLR (全文检索)

    SOLR (全文检索) http://sinykk.iteye.com/ 1.   什么是SOLR 官方网站 http://wiki.apache.org/solr http://wiki.apach ...

  9. solr连接数据库

    solr与.net系列课程(三)solr连接数据库    solr与.net系列课程(三)solr连接数据库 上一章直接讲述的配置文件把大部分人看的很迷惑,大家都想听的是solr到底是怎么用的,好,这 ...

随机推荐

  1. py-day3-4 python 匿名函数

    # 匿名函数 lamdba name = 'xiaoma' f = lambda x:x+'jun' res = f(name) print('匿名函数的运行结果:',res) 匿名函数的运行结果: ...

  2. 串口接收端verilog代码分析

    串口接收端verilog代码分析 `timescale 1ns / 1ps ////////////////////////////////////////////////////////////// ...

  3. 协议并发测试工具 BoHexTest

    BoHexTest V1.0.3 1.添加连接LOG打印2.优化代理及并发策略 大小: 1074688 字节修改时间: 2017年10月3日, 10:24:26MD5: EBAE5A17F7F5ED0 ...

  4. 【剑指offer】判断出栈序列是否合法

    输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应 ...

  5. Python的hasattr(),getattr(),setattr()

    今天读到源码时遇到了setattr()和getattr()两方法,给忘了,重新回顾一下吧! 1. hasattr(object, name) 判断object里是否有name属性,有就返回True,没 ...

  6. 初识docker-镜像

    前言: 以前学习docker 都是零零碎碎的,只知道用,有些莫名其妙的报错自己也没有思路去解决,所以基于一本专业的介绍docker的书籍,重新开启学习,该博客就记录下我自己的学习过程吧. 1.dock ...

  7. MySQL——navicat 连接 mysql 出现1251Client does not support authentication protocol requested by server的解决方案

    前期修改root密码问题(首次安装的root密码是空,直接Enter就行): cmd用管理员身份进入,然后输入 mysqladmin -u root -p password newpassword 需 ...

  8. 爬虫基础线程进程学习-Scrapy

    性能相关 学习参考:http://www.cnblogs.com/wupeiqi/articles/6229292.html 在编写爬虫时,性能的消耗主要在IO请求中,当单进程单线程模式下请求URL时 ...

  9. WPF dev 获取gridControl筛选后的数据

    GridControl.DataController.GetAllFilteredAndSortedRows();

  10. java 中文繁简体转换工具 opencc4j

    创作缘由 对于中文的繁简体转换是一种很常见的需求. 但是很多工具类都是简单的做个映射.(使用map,集合,properties)等. 存在一个严重的问题:特殊词组 的转换可能存在问题. OpenCC ...