一. 数据导入(DataImportHandler-DIH)

DIH 是solr 提供的一种针对数据库、xml/HTTP、富文本对象导入到solr 索引库的工具包。这里只针对数据库做介绍。

A、准备以下jar包

apache-solr-dataimporthandler-4.0.0.jar

apache-solr-dataimporthandler-extras-4.0.0.jar

apache-solr-dataimportscheduler-1.1.jar(增量导入使用)

数据库对应的jdbc驱动包这里使用的是Oracle oracle10g.ja放入Tomcat6.0.36/webapps/sol/WEB-INF/lib 中

B、配置solrconfig.xml

在solrconfig.xml中加入如下配置:

<requestHandlername=”/dataimport” class=”org.apache.solr.handler.dataimport.DataImportHandler”>

<lst name=”defaults”>

<str name=”config”>xx-data-config.xml</str>

</lst>

</requestHandler>

C、配置数据源

在与solrconfig.xml文件同级的目录中建立上述配置中的xx-data-config.xml文件,配置如下

query属性为全导入的时候使用。其他为增量导入使用。

<?xml version=”1.0″ encoding=”UTF-8″ ?>

<dataConfig>

<dataSource type=”JdbcDataSource”

driver=”oracle.jdbc.driver.OracleDriver”

url=”jdbc:oracle:thin:@192.168.0.129:1521:orcl”

user=”username”

password=”password”/>

<document>

<entity name=”business_info” pk=”ID”

query=”select t.ID id,business_name,bussiness_type from business t”

deltaImportQuery=”select t.ID id,business_name,bussiness_type from business t where id=’${dataimporter.delta.ID}'”

deltaQuery=”select t.ID id,business_name,bussiness_type from business t where  to_char(updatetime,’yyyy-mm-dd hh24:mi:ss’)> ‘${dataimporter.last_index_time}'”>

<field column=”ID” name=”id”/>

</entity>

</document>

</dataConfig>

至此所有DIH的配置完成,在浏览器中输入命令:

全导入:

http://localhost:8085/solr/core0/dataimport?command=full-import&commit=ture

增量导入:

http://localhost:8085/solr/core0/dataimport?command=delta-import&clean=false&commit=ture

查看导入状态

http://localhost:8085/solr/core0/dataimport?command=status

D、处理CLOB字段

<entity name=”meta” query=”select id,filename,content,bytes from documents” transformer=”ClobTransformer”>

<field column=”ID” name=”id” />

<field column=”CONTENT” name=”CONTENT” clob=”true” />

</entity>

ClOB 字段的 column 必须大写!!

E、DIH内存溢出错误

在使用DIH时,容易报内存溢出错误。可以通过设置jvm大小来解决。设置方法如下:

在tomcat\bin\startup.bat 加入SET JAVA_OPTS=-Xms128m -Xmx1024m 配置 这里设置的是1024M,根据情况可以适量增大

F、自动全导入和自动增量导入

此功能可以自己写程序实现,也可利用apache-solr-dataimportscheduler-1.0.jar包完成此功能。配置如下:

修改solr.war中WEB-INF/web.xml, 在servlet节点前面增加:

<listener>
<listener-class>
org.apache.solr.handler.dataimport.scheduler.ApplicationListener
</listener-class>
</listener>

将apache-solr-dataimportscheduler-.jar 中 dataimport.properties 取出并根据实际情况修改,然后放到 solr.home/conf (不是solr.home/core/conf) 目录下面

具体配置可参考:http://code.google.com/p/solr-dataimport-scheduler/

转载于:https://www.cnblogs.com/coderdxj/p/9620059.html

Solr从数据库导入数据(DIH)相关推荐

  1. solr 从数据库导入数据,全量索引和增量索引(实例配置原理)

    http://blog.csdn.net/u013378306/article/details/50761610 为防止原文删除特此备份 ------------------------------- ...

  2. solr 从数据库导入数据,全量索引和增量索引

    首先说一下是从MySQL数据库导入数据 这里使用的是mysql测试. 1.先在mysql中建一个表:solr_test 2.插入几条测试数据: 3.用记事本打solrconfig.xml文件,在sol ...

  3. 转:solr 从数据库导入数据,全量索引和增量索引(实例配置原理)

    http://blog.csdn.net/u013378306/article/details/50761610 为防止原文删除特此备份 ------------------------------- ...

  4. 跟益达学Solr5之从MySQL数据库导入数据并索引

    最近有小伙伴跟我抱怨说:益达,最近博客更新的有点慢呐.其实不是我变懒了,我是不想因为数量而降低了博客的质量,我需要抱着对你们负责的态度来写每一篇博客,绝不能含糊啊,所以,还望大家多多包涵呐. 今天群里 ...

  5. mysql数据库导入数据的几种方式

    mysql数据库导入数据的几种方式 适用于大量数据的导入 一.excel方式导入 1.将需要的数据放到表格中,需要注意表格中的列必须与要导入的表保持一致 2.导入步骤 二.csv文件导入 1.一般拿到 ...

  6. 如何实现MindManager数据库导入数据连接

    思维导图有时候也是需要数据来进行补充支持,对于MindManager思维导图来说,与数据库的链接使得功能更为强大,那么在MindManager数据库中又是如何导入数据呢. 一个数据库连接到数据源(Mi ...

  7. vm时序数据库-导入数据

    时间序列数据可以通过任何支持的摄取协议导入: Prometheus remote_write API. See these docs for details. DataDog submit metri ...

  8. 达梦数据库导入数据的几种方法

    一.背景介绍 在实际工作中,经常会遇到一类需求,需要把生产库数据导入到测试库进行相关测试,笔者在这里简单介绍几种方法及其适用场景,主要有逻辑导出和逻辑导入.物理备份还原.达梦数据迁移工具dts,并用测 ...

  9. MYSQL数据库导入数据时出现乱码的解决办法

    首先在新建数据库时一定要注意生成原数据库相同的编码形式,如果已经生成可以用phpmyadmin等工具再整理一次,防止数据库编码和表的编码不统一造成乱码. 方法一: 通过增加参数 –default-ch ...

最新文章

  1. 微分方程 ode45() 求解并绘制曲线
  2. MFC+OPENCV+显示MAT类型图像
  3. linux系统ll历史,Linux操作系统原理笔记
  4. ajax向后台传递数组
  5. golang package 是什么意思?一份来自初学者的golang package体验指南
  6. 加大Linux服务器的文件描述符
  7. java链接mysql原始方法_java连接mysql数据库的方法
  8. POJ3349 Snowflake Snow Snowflakes(hash)
  9. 踩过的坑 vertical-alignline-height
  10. 基于ZStack构建深度学习云平台
  11. hightopo学习笔记---入门
  12. 用iTunes制作苹果手机铃声
  13. 反射 Reflect Modifier 修饰符工具类
  14. 62. 丑数(剑指Offer经典题)
  15. NVL、NVL2、NULLIF、COALESCE的区别是什么?
  16. ITM_SendChar
  17. 关于视频播放的一些总结
  18. 【云原生】第十篇--Docker主机集群化方案 Docker Swarm
  19. 修改C:\Users 下面文件夹的名称
  20. java改变时间格式

热门文章

  1. 用emWin的2D绘图函数画一个带圆形端点的环形进度条
  2. 国标28181:海康、大华、宇视摄像头怎么添加GB28181协议
  3. 18春计算机应用基础在线答案,南开18春《计算机应用基础》在线作业答案.doc
  4. python爬取王者荣耀全皮肤高清无水印图片
  5. vue watch store
  6. 科技云报道:2022Arm服务器现状:云阵营已成
  7. 如何用Scrum做变革管理的落地实施
  8. 创业起步学习笔记【下】
  9. 网络安全防御体系建设-防守实例
  10. Matlab的一些术语