Solr数据库导入

1、在MySQL中创建一张表t_solr,并插入测试数据。

2、把E:\Solr\solr-4.10.4\example\example-DIH\solr\db\conf下的admin-extra.html, admin-extra.menu-bottom.html,admin-extra.menu-top.html三个文件也复制到conf中去。

打开E:\Solr\solrHome\mycore\conf路径下的

solrconfig.xml文件,添加如下节点:

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

<lstname="defaults">

<strname="config">data-config.xml</str>

</lst>

</requestHandler>

3、新建一个data-config.xml文件,与solrconfig.xml同一个目录下。内容为:

<dataConfig>

<dataSource type="JdbcDataSource"

driver="com.mysql.jdbc.Driver"

url="jdbc:mysql://localhost/test"

user="root"

password="giser" />

<document>

<entity name="t_solr" transformer="DateFormatTransformer"

query="SELECT id, subject, content, last_update_time FROM t_solr WHERE id >= ${dataimporter.request.id}">

<field column='last_update_time' dateTimeFormat='yyyy-MM-dd HH:mm:ss' />

</entity>

</document>

</dataConfig>

说明:这里使用了一个${dataimporter.request.id},这个是参数,后面在做数据导入时,会使用到,以此条件为基准读数据。

4、复制解压出的solr jar包(E:\Solr\solr-4.10.4\dist)solr-dataimporthandler-4.10.0.jar和solr-dataimporthandler-extras-4.10.0.jar到tomcat solr webapp的WEB-INF\lib目录下(E:\Solr\apache-tomcat-7.0.65\webapps\solr\WEB-INF\lib)。

当然,也包括mysql的jdbc jar包:mysql-connector-java-5.1.7-bin.jar

(还有一种方法是在solrconfig.xml中加入lib节点,然后把jar包放到solrhome下,这样可以不在WEB-INF\lib中加入jar包)

5、用记事本打开E:\Solr\solrHome\mycore\conf路径下的schema.xml,在solrhome文件夹中添加内容如下:

<!—type对应 -->

<fieldtype name="string"  class="solr.StrField" sortMissingLast="true" omitNorms="true"/>

<fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>

<field name="subject" type="string" indexed="true" stored="true" />

<field name="content" type="string" indexed="true" stored="true" />

<defaultSearchField>subject</defaultSearchField>

6、打开Solr,查询数据

通过地址直接访问:http://localhost:8080/solr/mycore/dataimport?command=full-import&clean=true&commit=true&wt=json&indent=true&entity=t_solr&verbose=false&optimize=false&debug=false&id=1

结果如图所示:

配置好后,之后我们只需要使用这个url地址,就可以不断的去导入数据做索引了。

通过DataImport生成索引:

查询结果:

  总结:

遇到的问题1:

mysql java.sql.SQLException: Unknown system variable 'language&#03

一:问题描述:mysql测试连接一致报错:Unknown system variable 'language' 未知名的系统变量语言

二:用的Mysql的版本 5.6 用的连接 jar  mysql-connector-java-5.1.36.jar

三:找到问题,mysql-connector-java-5.1.36.jar版本太高了,换成

mysql-connector-java-5.1.24.jar 问题解决!

遇到的问题2:

  把solr-6.0\solr-6.0.0\example\example-DIH\solr\db\conf下的admin-extra.html, admin-extra.menu-bottom.html,admin-extra.menu-top.html三个文件也复制到conf中去。

Solr数据库导入的更多相关文章

  1. [solr] - 数据库导入

    这里使用的是mysql测试. 1.先在mysql中建一个表:solr_test 2.插入几条测试数据: 3.用记事本打solrconfig.xml文件,在solrhome文件夹中.E:\solrhom ...

  2. solr插件导入数据库中的数据

    solr插件导入数据库中的数据 1:自定义与数据库对应的域: 1.1. 设置业务系统Field 如果不使用Solr提供的Field可以针对具体的业务需要自定义一套Field. 例如:如下是商品信息Fi ...

  3. Solr定时导入功能实现

    需要实现Solr定时导入功能的话,我们可以通过使用Solr自身所集成的dataimportscheduler调度器实现 下载对应的jar包,下载地址https://code.google.com/ar ...

  4. Java实现MySQL数据库导入

    距离上班还有一段时间.现在总结一下如何使用Java语言实现MySQL数据库导入: 首先新建名为test的数据库: 其次执行下面Java代码: import java.io.File; import j ...

  5. Access数据库导入到SQL Server 2005 Express中

    安装好SQL Server 2005 Express后,再安装SQL Server Management Studio Express CTP就可以很方便的使用控制台进行数据库的管理.但SQL Ser ...

  6. MYSQL数据库导入导出(可以跨平台)

    MYSQL数据库导入导出.sql文件 转载地址:http://www.cnblogs.com/cnkenny/archive/2009/04/22/1441297.html 本人总结:直接复制数据库, ...

  7. (ORA-12899) 10g数据库导入到11g数据库时报错

    问题: 10g数据库导入到11g数据库时,部分表的字段会出现ORA-12899的报错,如下: IMP-00019: 由于 ORACLE 错误 12899 而拒绝行       IMP-00003: 遇 ...

  8. Oracle数据库——常用命令(用户管理、数据库导入导出)

    --==cmd控制台==-- --==日常用户管理SQL==-- --连接到SQLPLUS >sqlplus /nolog --以dba身份连接 sql>conn / as sysdba ...

  9. (转)Linux下Oracle启动、建立表空间、用户、授权、数据库导入导出

    Linux系列 启动1.启动数据库实例,分为两步:第一步,启动监听:第二步,启动数据库实例. 1.1进入到sqlplus启动实例 [oracle@redhat ~]$ su - oracle      ...

随机推荐

  1. 第七章 鼠标(CONNECT)

    /* CONNECT.C -- Connect-the-Dots Mouse Demo Program (c) Charles Petzold,1998 */ #include <Windows ...

  2. FLask上传文件

    目录 Flask上传文件 改进上传 上传进度条 一个更简便的方案 Flask上传文件 文件上传的基本原理实际上很简单,基 本上是: 一个带有 enctype=multipart/form-data 的 ...

  3. oracle中如何只查询一条复合条件的记录,即查到一条记录就返回(转)

    可以用rownum来查询一条记录. 如emp表中有如下数据. 要求查询deptno为20的,但只取一条记录,可用如下语句: select * from emp where deptno=20 and  ...

  4. 【17】有关python面向对象编程的提高【多继承、多态、类属性、动态添加与限制添加属性与方法、@property】

    一.多继承 案例1:小孩继承自爸爸,妈妈.在程序入口模块再创建实例调用执行 #father模块 class Father(object): def __init__(self,money): self ...

  5. dp 动态规划 之C - Apple Catching 简单基础

    终于开始写dp了,还很不熟练 It is a little known fact that cows love apples. Farmer John has two apple trees (whi ...

  6. openssl交叉编译记录

    本次任务是要完毕嵌入式Linux下对openssl程序的支持.     我的开发环境:ARM9开发板 和 嵌入式Linux操作系统.装有Linux系统(我的是ubuntu9.04)的PC机一台.串口和 ...

  7. Destroying Array CF 722C

    题目大意就是给长度为 n 一个数列,有 n 每次删除,每一次删除第 i 个位置上的数,求每一次删除后剩余不连续数列的最大区间和. 输入样例 4 1 3 2 5 3 4 1 2 输出样例 5 4 3 0 ...

  8. LCA树链剖分

    LCA(Lowest Common Ancestor 最近公共祖先)定义如下:在一棵树中两个节点的LCA为这两个节点所有的公共祖先中深度最大的节点. 比如这棵树 结点5和6的LCA是2,12和7的LC ...

  9. jQuery-iframe加载完成后触发的事件监听

    每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code 最近遇到一个问题,要写一个后台管理系统的layout,里面content是一个ifra ...

  10. document.querySelector获取不到html标签对象实例的原因

    官方给出的HTML中的ID的命名规范: 1.必须以字母 A-Z 或 a-z 开头2.其后的字符:字母(A-Za-z).数字(0-9).连字符("-").下划线("_&qu ...