Solr DIH以Mysql为数据源批量创建索引

时间:2022-12-17 21:20:34
演示使用solr管理后台,以mysql为数据源,批量建索引的方法
测试于:Solr 4.5.1, mmseg4j 1.9.1, Jdk 1.6.0_45, Tomcat 6.0.37 | CentOS 5.7

配置数据源

[root@devnote ~]# cd /root/solr-4.5.1/example/example-DIH/solr/db/conf
[root@devnote conf]# touch mysql-data-config.xml

编辑mysql-data-config.xml,根据需要添加新内容,内容可参见同目录下db-data-config.xml文件

<dataConfig>
    <dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/basic" user="root" password="123"/>
    <document>
        <entity name="article" transformer="HTMLStripTransformer"
               query="SELECT id, title, content FROM article">
                <field column="id" name="id" />
                <field column="title" name="title" />
                <field column="content" name="content" stripHTML="true" />
        </entity>
    </document>
</dataConfig>

transformer="HTMLStripTransformer"配合stripHTML="true"使用来达到过滤正文html标签的作用。

配置dataimport handler

打开solr管理后台,选择相应的core,选择Dataimport(可参考如下第二张截图)
初次使用此功能,会显示:sorry, no dataimport-handler defined!
编辑solrconfig

[root@devnote ~]# vi solr-4.5.1/example/solr/collection1/conf/solrconfig.xml

加入如下代码

 <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
  <lst name="defaults">
    <str name="config">/root/solr-4.5.1/example/example-DIH/solr/db/conf/mysql-data-config.xml</str>
  </lst>
</requestHandler>

添加位置根据自己的习惯,便于查找即可,我这里放到系统内置最后一个handler,replication之下,如:
Solr DIH以Mysql为数据源批量创建索引

重启报错:java.lang.ClassNotFoundException: org.apache.solr.handler.dataimport.DataImportHandler引入需要的包即可

[root@devnote ~]# cp solr-4.5.1/dist/solr-dataimporthandler-*.jar /opt/tomcat/webapps/solr/WEB-INF/lib/

因为涉及到连接mysql,自己找一个mysql的驱动包也放到上述lib中

重启

执行创建索引

  1. 选择对应的core;
  2. 选择Dataimport;
  3. 选择实体article;(注Solr 4.9.0中实体列表为空,解决方法参见:For security reasons, SolrResourceLoader cannot load files from outside the instance's directory)
  4. 执行Execute;
  5. Refresh Status查看状态,右侧会显示正确索引的数量。

Solr DIH以Mysql为数据源批量创建索引

如过此内容对您有帮助,欢迎以点击广告的形式来支持我们,但请每天不要多于一次,否则可能被识别恶意点击,导致封号。

Solr DIH以Mysql为数据源批量创建索引的更多相关文章

  1. Solr搜索引擎 — 通过mysql配置数据源

    一,准备数据库数据表结构 CREATE TABLE `app` ( `id` int(11) NOT NULL AUTO_INCREMENT, `app_name` varchar(255) NOT ...

  2. 用solr DIH 实现mysql 数据定时&comma;增量同步到solr

    基础环境: (二)设置增量导入为定时执行的任务: 很多人利用Windows计划任务,或者Linux的Cron来定期访问增量导入的连接来完成定时增量导入的功能,这其实也是可以的,而且应该没什么问题. 但 ...

  3. Solr5&period;5&period;3的研究之路 ---1、从Mysql导入数据并创建索引

    公司需要用到全文检索,故使用Solr,也是新人一枚,本人查看的前提是Solr已经安装部署成功,我用的服务器是自带的Jetty 1.创建Collection [root@whoami bin]# ./s ...

  4. Mysql基础知识--概述和索引

    一.Mysql概述 MySQL原来隶属于MySQL公司,总部位于瑞典 2008.1.16MySQL被SUN公司收购 2009年SUN公司被Oracle公司收购 常见的软件版本 GA(general A ...

  5. 基于CentOS的MySQL学习补充三--使用Shell批量创建数据库表

    本文出处:http://blog.csdn.net/u012377333/article/details/47006087 接上篇介绍<基于CentOS的Mysql学习补充二--使用Shell创 ...

  6. Windows系统环境下Solr之Java实战(二)配置从MySQL数据库批量导入索引

    1.将D:\JavaWeb\Solr\solr-6.2.0\dist下面的solr-dataimporthandler-6.2.0.jar和solr-dataimporthandler-extras- ...

  7. MYSQL批量创建表的存储过程

    因为业务需要,创建了100个表,但是这些表的结构都是一样的,作为程序员,就是要解决这种重复劳动.然而这种事情还要单独写个php脚本的话太麻烦了吧,所以就干脆学了一下直接用Mysql存储过程怎么实现: ...

  8. Solrj和Solr DIH索引效率对比分析

    测试软件环境: 1.16G windows7 x64  32core cpu . 2.jdk 1.7  tomcat 6.x  solr 4.8 数据库软件环境: 1.16G windows7 x64 ...

  9. Solr DIH JDBC 源码解析

    Solr DIH 源码解析 DataImportHandler.handleRequestBody()中的importer.runCmd(requestParams, sw) if (DataImpo ...

随机推荐

  1. JavaWeb技术(一):JDBC简介

    一.  JDBC简介 1. Java Database Connectivity(JDBC) 使用JDBC可以对数据库进行访问 2. JDBC的核心接口 1)DriverManager 驱动管理器接口 ...

  2. 重写setTimeout扩展参数

    //判断函数行参长度来决定是否需要重写setTimeout,ie8以下为undefined if(window.setTimeout.length == undefined){ var __sto = ...

  3. &lbrack;redis&rsqb; 征服Redis系列

    征服 Redis:简介+安装+调优+测试+主从+集群 征服 Redis + Jedis:简单Jedis+池化Jedis+集群Jedis 征服 Redis + Jedis + Spring (一)—— ...

  4. Android 环境搭建、基础窗口window/Mac

    1.五步搞定Android开发环境部署--非常详细的Android开发环境搭建教程 2.Android开发学习之路--MAC下Android Studio开发环境搭建 4.Android常用开发工具以 ...

  5. MySQL误操作删除后,怎么恢复数据?

    MySQL误操作删除后,怎么恢复数据?登陆查数据库mysql> select * from abc.stad;+----+-----------+| id | name |+----+----- ...

  6. 正则表达式(&lowbar; &percnt; regexp&lowbar;like&rpar;

    '[^\.0-9]'——不含小数点和数字的字符串,^在中括号内表非 select '123' aa from dual where regexp_like( '123', '[^\.0-9]' ) - ...

  7. Android Service总结05 之IntentService

    Android Service总结05 之IntentService   版本 版本说明 发布时间 发布人 V1.0 添加了IntentService的介绍和示例 2013-03-17 Skywang ...

  8. bzoj千题计划296:bzoj1053&colon; &lbrack;HAOI2007&rsqb;反素数ant

    http://www.lydsy.com/JudgeOnline/problem.php?id=1053 求n以内约数个数最多的数 #include<cstdio> using names ...

  9. 阿里云安装docker 指定版本

    sh docker-install.sh 1.12.6 #ubuntu16.4 测试通过 #!/bin/sh set -e # # This script is meant for quick &am ...

  10. 20145304 Exp9 Web安全基础实践

    20145304 Exp9 Web安全基础实践 实验后回答问题 (1)SQL注入攻击原理,如何防御 SQL注入是将查询语句当做查询内容输入到查询的框中,以此来使服务器执行攻击者想让它执行的语句,而不是 ...