`
newspringwork
  • 浏览: 101701 次
  • 性别: 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,司职得分后卫');

 

返回目录

分享到:
评论

相关推荐

    neo4j-admin import导入工具csv导入及参数说明

    `neo4j-admin import` 是Neo4j数据库系统中的一个强大工具,用于将外部数据(如CSV文件)导入到Neo4j图数据库中。此工具提供了一系列灵活的选项来处理不同格式的数据,并确保数据能够高效、准确地导入到目标数据库。...

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

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

    EMS Advanced Data Import 3.12.0 + demos

    总的来说,EMS Advanced Data Import 3.12.0是一个功能强大的数据库导入工具,适用于各种数据库环境,能够有效提升数据导入的效率和准确性。配合提供的演示示例,用户可以更快地掌握软件使用技巧,充分利用其功能来...

    linux下数据库导入导入导出EXCEL文件

    这条命令将从名为“test.db”的数据库中选取“data”表的所有记录,并将结果保存为“output.csv”。 **2. 使用第三方工具** 另一种方法是使用第三方工具,如sqliteadmin,它可以更直观地管理和导出数据。下载并...

    从一个数据库导入到另一个数据库中

    本文将详细介绍如何将数据从一个数据库导入到另一个数据库中,同时也会涉及到“源码”和“工具”这两个标签所涵盖的相关内容。 首先,我们需要理解数据库的基本概念。数据库是存储和管理数据的系统,它允许我们组织...

    excel文件导入mysql数据库

    将Excel文件导入到MySQL数据库中,可以帮助我们更好地管理和操作大量数据,尤其是在数据分析和报表生成时。下面,我们将详细讨论如何实现这个过程。 首先,确保你已经安装了MySQL服务器和客户端工具,比如MySQL ...

    Solr定时更新Solr定时更新

    而定时更新功能是Solr的一个重要特性,它允许用户定期地、自动地从数据源导入新数据或者更新已有数据,以保持索引与实际数据的一致性。 在Solr中,定时更新主要通过DataImportHandler(DIH)实现,这是一个用于将...

    数据库导入命令

    根据提供的信息,我们可以了解到这些命令是用来执行Oracle数据库导入操作的。在Oracle数据库管理中,数据导入导出是一项非常重要的工作,通常使用Oracle的工具如`expdp`(Export Data Pump)和`impdp`(Import Data ...

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

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

    excel大量数据如何导入到oracle数据库中

    ### Excel大量数据导入Oracle数据库的方法 #### 一、前言 在日常工作中,我们经常会遇到需要将Excel中的数据批量导入到Oracle数据库的情况。这不仅能够提高工作效率,还能够确保数据的准确性。本文将详细介绍如何...

    C#写的execl导入数据库工具

    标题中的"C#写的execl导入数据库工具"是一个使用C#编程语言开发的应用程序,它的主要功能是将Excel电子表格中的数据高效地导入到不同的数据库系统中,如Access、Oracle和SQL Server。这样的工具在数据迁移、数据分析...

    sql-数据批量导入

    - **LOAD DATA INFILE**:在MySQL中,使用LOAD DATA INFILE语句可以从本地文件快速导入数据。同样需要编写SQL脚本来执行此操作。 4. **第三方工具**: - **XlsToSql**:这个工具可能就是压缩包中的主要内容,它专...

    SuperMap Deskpro .NET 导入GDB数据

    《SuperMap Deskpro .NET 导入GDB数据详解》 在GIS(地理信息系统)领域,数据的导入与导出是日常操作的重要环节。SuperMap Deskpro .NET是一款强大的地图编辑与制图软件,它提供了丰富的数据处理功能,包括对各种...

    java实现excel导入数据库

    在Java编程中,将Excel数据导入到MySQL数据库是一项常见的任务,尤其在数据处理和分析的场景下。要完成这个过程,我们需要使用特定的库来读取Excel文件,并使用JDBC(Java Database Connectivity)来与MySQL数据库...

    Java实现excel文档数据导入数据库、导出excel

    本文将详细介绍如何使用Java实现Excel文档数据的导入到数据库以及从数据库导出到Excel。 一、导入Excel数据到数据库 1. **库的选择**: 为了在Java中处理Excel文件,我们需要依赖第三方库,如Apache POI。Apache ...

    Advanced Data Import 3 (1).rar

    在这个特定的案例中,"Advanced Data Import 3"很可能是该系列组件的第三个版本,专注于提高应用程序的数据导入能力。 在Delphi中,数据导入通常用于将数据从各种外部源(如CSV、Excel、XML、数据库等)引入到应用...

    ACCESS导入SQL数据库的系列方法

    本篇将详细讲解如何将Access数据库导入到SQL Server,以实现更高效的数据管理和分析。 首先,我们需要了解Access和SQL Server的基本特性。Access是一款轻量级的桌面数据库应用,适合小型到中型的数据存储,易于上手...

    java将excel数据读取存入mysql数据库中

    在Java编程领域,将Excel数据读取并存储...这通常用于数据迁移、数据导入或其他需要从非结构化数据源提取信息的场景。记得在实际应用中,根据具体需求调整代码,例如处理不同数量的列、处理空值、检查数据的合法性等。

    SAS导入数据[文].pdf

    3. **Access数据库导入** - **语法**: ```sas proc import out=import_ac table='TableName' dbms=access replace; database="C:\path\to\yourfile.mdb"; uid=''; pwd=''; run; ``` - **参数解析**: - `...

Global site tag (gtag.js) - Google Analytics