`
newspringwork
  • 浏览: 99706 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

第四章、从数据库导入数据-DataImport

    博客分类:
  • Solr
 
阅读更多

这一节描述的是如何从数据库导入数据并进行搜索

1.配置dataimport

在前面core_test的配置文件/conf/solrconfig.xml中增加dataimport

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

 

2.配置data-config.xml

在solrconfig.xml同一个目录下创建文件data-config.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource name="solrDB" type="JdbcDataSource" driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/test"
 user="root" password=""/>
<document>
    <entity pk="id" dataSource="solrDB" name="nba_star" 
    query="SELECT 
			  a.id,
			  a.name,
			  a.age,
			  a.desc 
			FROM
			  nba_super_star a"
    deltaImportQuery="SELECT 
			  a.id,
			  a.name,
			  a.age,
			  a.desc 
			FROM
			  nba_super_star a
			WHERE 
			  a.id='${dataimporter.delta.id}'"
    deltaQuery="SELECT id from nba_super_star 
                      where modifier_time > '${dataimporter.last_index_time}'">
        <field column="id" name="id"/>
        <field column="name" name="name"/>
		<field column="age" name="age"/>
        <field column="desc" name="desc"/>
    </entity>
</document>
</dataConfig>

 这里主要是配置数据库连接参数,solr更新使用SQL等

如果有一个field是multiValued="true"(可能有多个值),那这个字段导入的配置可以在对应的entity中(nba_star)加上配置(假设该对应关系存储在solr_test_star_tag表中)

<entity name="sport_star_tags"
   query="select tag_text from solr_test_star_tag where star_id='${sport_stars.id}'" >
	<field column="tag_text" name="tags"/>  
</entity>

 

3.导入相关包到WEB-INF/lib下

一般可在solr目录的dist文件夹下可找到

solr-dataimporthandler-6.1.0.jar、solr-dataimporthandler-extras-6.1.0.jar、mysql-connector-java-5.1.34.jar

 

4.导入全部数据

导入全部:

http://localhost:8080/solr/core_test/dataimport?command=full-import

查看状态:

http://localhost:8080/solr/core_test/dataimport?command=status

 

5.查询

同上一章

 

附:

测试数据库表以及原始数据SQL

CREATE DATABASE `test`;
USE `test`;
DROP TABLE IF EXISTS `nba_super_star`;
CREATE TABLE `nba_super_star` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '球星ID',
  `name` varchar(40) DEFAULT NULL COMMENT '姓名',
  `age` smallint(6) DEFAULT NULL COMMENT '年龄',
  `desc` text COMMENT '简介',
  `modifier_time` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

insert  into `nba_super_star`(`id`,`name`,`age`,`desc`) values (1,'Michael Jordan',53,'迈克尔·乔丹,1963年2月17日生于纽约布鲁克林,司职得分后卫,历史上最伟大的篮球运动员。2009年9月11日,迈克尔·乔丹正式入选NBA篮球名人堂。'),
	(2,'LeBron James',32,'勒布朗·詹姆斯(LeBron James),绰号“皇帝”,1984年12月30日出生在美国·俄亥俄州·阿克伦,世界著名的美国男子职业篮球运动员,司职小前锋,效力于NBA克利夫兰骑士队。'),
	(3,'Stephen Curry',28,'斯蒂芬·库里(Stephen Curry),1988年3月14日出生于美国俄亥俄州阿克伦(Akron, Ohio),美国职业篮球运动员,司职控球后卫,效力于NBA金州勇士队。'),
	(4,'James Harden',27,'詹姆斯·哈登,2009年通过选秀进入NBA,司职得分后卫');

 

返回目录

分享到:
评论

相关推荐

    gbase8s 数据库数据的导入和导出.doc

    本文总结了 GBase8s 数据库常用的数据导入和导出工具和基本用法,包括Unload/Load、Dbload、Dbexport/Dbimport 和外部表四种方式。 一、Unload/Load Unload/Load 是最常用的简单的数据导入、导出工具,支持的数据...

    Java高级程序设计实战教程第八章-Java数据库编程.pptx

    Java高级程序设计实战教程第八章-Java数据库编程全文共12页,当前为第4页。 8.2.2 JDBC连接数据库 JDBC简介 之前我们介绍的数据库访问技术都是Microsoft提出的,主要用于Windows平台上Microsoft开发环境下的数据库...

    怎样在PB中实出,将EXCEL数据表,导入到SQLSERVER数据库中[定义].pdf

    PB 中实现将 EXCEL 数据表导入到 SQL SERVER 数据库中的方法 在 PB 中,可以通过多种方式将 EXCEL 数据表导入到 SQL SERVER 数据库中。下面是其中的一些方法: 1. 使用 IMPORTFILE() 函数 在 PB 中,可以使用 ...

    大数据-sqoop.pptx

    将数据从 RDBMS 导入 HDFS 在 Hive 中使用相应的工具和命令(例如 LOAD DATA 语句),手动将数据载入 Hive 或 Hbase 大数据-sqoop全文共16页,当前为第4页。 Sqoop版本区别 功能 Sqoop1 Sqoop2 数据从 Hive 或 ...

    Oracle_Database_11g完全参考手册.part2/3

    第4章 规划OracIe应用程序方法、风险和标准 4.1 协作方法 4.2 每个人都有“数据 4.3 熟悉的Oracle语言 4.3.1 存储信息的表 4.3.2 结构化查询语言 4.3.3 简单的Oracle查询 4.3.4 为什么称作“关系 4.4 一些通用的、...

    Oracle_Database_11g完全参考手册.part3/3

    第4章 规划OracIe应用程序方法、风险和标准 4.1 协作方法 4.2 每个人都有“数据 4.3 熟悉的Oracle语言 4.3.1 存储信息的表 4.3.2 结构化查询语言 4.3.3 简单的Oracle查询 4.3.4 为什么称作“关系 4.4 一些通用的、...

    Oracle Database 11g初学者指南--详细书签版

    第4章 SQL:结构化查询语言 77 4.1 SQL语句的组成 78 4.1.1 DDL 78 4.1.2 DML 79 4.2 基本的insert和select语句 79 4.2.1 insert 79 4.2.2 select 80 4.3 简单的where子句 81 4.3.1 带and/or的where子句 84 ...

    phpems6.1测试版(20200322).zip

    接下来导入数据库文件:(注意有些软件上面直接显示“导入”没有的就选择“import” 选择解压后文件夹中的pechina.sql文件 然后点击执行 出现如下界面表示我们数据导入成功: 5、在lib/config.inc.php文件中...

    PB数据窗口source介绍及举例

    这里全是定义的数据属性,是setitem,update,object.data等方法访问的根源 如果存在table()里的column,数据窗口里可以不存在任何对象,仍然可以访问数据窗口的数据 如果想创建一个空的数据窗口,可以只定义: release 12;...

    informix9.3升级到informix9.4

    dbimport恢复不需要创建DBS,导入库时可以指定创建库的位置,例如: dbimport –c sxperf -i /backup/dbexport/port -d /opt/informix/user/hbperfchk01 6 附录:数据库升级记录 1. 将/opt/informix/*以及/opt/...

    DataImportNeo4j:使用 node.js 将数据导入 Neo4j

    删除从第 65 行开始的查询语句后,您可以通过仅执行 createImageNode(Image) 在现有数据上添加数据。 笔记和问题还有一个因为上面的包没有批处理支持,是用coffee脚本编写的。 。 让我们一步一步地学习如何使用它。

    db2数据库入门教程(官方中文版)

    第 4章 – DB2的应用环境.......................................................................................................35 实验 #2 - 创建一个新的数据库.............................................

    visio教程PDF

    第4章 使用样板创建新工程 4.1 从样板绘图开始 4.2 Block Diagram文件夹中的样板 4.2.1 Basic Diagram 4.2.2 Block Diagram with Perspective 4.2.3 Block Diagram 4.3 Flowchart文件夹中的样板 ...

    Visio 2000 技术大全

    第4章 使用样板创建新工程 4.1 从样板绘图开始 4.2 Block Diagram文件夹中的样板 4.2.1 Basic Diagram 4.2.2 Block Diagram with Perspective 4.2.3 Block Diagram 4.3 Flowchart文件夹中的...

    oracle安装及备份

    exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。 执行环境:可以在...

    Navicat for MySql可视化导入CSV文件

    1、创建一个数据库,右键单击表,导入向导import Wizard。 2、选择导入的数据文件格式,next-&gt; 3、选择要导入的.csv文件,注意编码格式与文件编码格式一样否则会出现乱码,然后进行下一步 4、选择需要的分隔符...

    电影数据分析.docx

    具体的思路是从要分析的目的入手,首先思考造成这种情况的可能原因有什么,再从每个可能的原因中找到相应的数据,与要分析的目的的数据进行比较,看哪一个是造成该情况发生的主要原因。 这里要用到的是excel的图表...

    java编写的图书管理系统源代码.doc

    这个语句,用于导入Java的SQL包,以便使用SQL语句与数据库进行交互。 接下来,我们看到的是一个名为Database的类,用于连接数据库HDB,并执行SQL查询。这个类中有两个重要的成员变量:Connection con和ResultSet rs...

Global site tag (gtag.js) - Google Analytics