这一节描述的是如何从数据库导入数据并进行搜索
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` 是Neo4j数据库系统中的一个强大工具,用于将外部数据(如CSV文件)导入到Neo4j图数据库中。此工具提供了一系列灵活的选项来处理不同格式的数据,并确保数据能够高效、准确地导入到目标数据库。...
本文总结了 GBase8s 数据库常用的数据导入和导出工具和基本用法,包括Unload/Load、Dbload、Dbexport/Dbimport 和外部表四种方式。 一、Unload/Load Unload/Load 是最常用的简单的数据导入、导出工具,支持的数据...
总的来说,EMS Advanced Data Import 3.12.0是一个功能强大的数据库导入工具,适用于各种数据库环境,能够有效提升数据导入的效率和准确性。配合提供的演示示例,用户可以更快地掌握软件使用技巧,充分利用其功能来...
这条命令将从名为“test.db”的数据库中选取“data”表的所有记录,并将结果保存为“output.csv”。 **2. 使用第三方工具** 另一种方法是使用第三方工具,如sqliteadmin,它可以更直观地管理和导出数据。下载并...
本文将详细介绍如何将数据从一个数据库导入到另一个数据库中,同时也会涉及到“源码”和“工具”这两个标签所涵盖的相关内容。 首先,我们需要理解数据库的基本概念。数据库是存储和管理数据的系统,它允许我们组织...
将Excel文件导入到MySQL数据库中,可以帮助我们更好地管理和操作大量数据,尤其是在数据分析和报表生成时。下面,我们将详细讨论如何实现这个过程。 首先,确保你已经安装了MySQL服务器和客户端工具,比如MySQL ...
而定时更新功能是Solr的一个重要特性,它允许用户定期地、自动地从数据源导入新数据或者更新已有数据,以保持索引与实际数据的一致性。 在Solr中,定时更新主要通过DataImportHandler(DIH)实现,这是一个用于将...
根据提供的信息,我们可以了解到这些命令是用来执行Oracle数据库导入操作的。在Oracle数据库管理中,数据导入导出是一项非常重要的工作,通常使用Oracle的工具如`expdp`(Export Data Pump)和`impdp`(Import Data ...
PB 中实现将 EXCEL 数据表导入到 SQL SERVER 数据库中的方法 在 PB 中,可以通过多种方式将 EXCEL 数据表导入到 SQL SERVER 数据库中。下面是其中的一些方法: 1. 使用 IMPORTFILE() 函数 在 PB 中,可以使用 ...
### Excel大量数据导入Oracle数据库的方法 #### 一、前言 在日常工作中,我们经常会遇到需要将Excel中的数据批量导入到Oracle数据库的情况。这不仅能够提高工作效率,还能够确保数据的准确性。本文将详细介绍如何...
标题中的"C#写的execl导入数据库工具"是一个使用C#编程语言开发的应用程序,它的主要功能是将Excel电子表格中的数据高效地导入到不同的数据库系统中,如Access、Oracle和SQL Server。这样的工具在数据迁移、数据分析...
- **LOAD DATA INFILE**:在MySQL中,使用LOAD DATA INFILE语句可以从本地文件快速导入数据。同样需要编写SQL脚本来执行此操作。 4. **第三方工具**: - **XlsToSql**:这个工具可能就是压缩包中的主要内容,它专...
《SuperMap Deskpro .NET 导入GDB数据详解》 在GIS(地理信息系统)领域,数据的导入与导出是日常操作的重要环节。SuperMap Deskpro .NET是一款强大的地图编辑与制图软件,它提供了丰富的数据处理功能,包括对各种...
在Java编程中,将Excel数据导入到MySQL数据库是一项常见的任务,尤其在数据处理和分析的场景下。要完成这个过程,我们需要使用特定的库来读取Excel文件,并使用JDBC(Java Database Connectivity)来与MySQL数据库...
本文将详细介绍如何使用Java实现Excel文档数据的导入到数据库以及从数据库导出到Excel。 一、导入Excel数据到数据库 1. **库的选择**: 为了在Java中处理Excel文件,我们需要依赖第三方库,如Apache POI。Apache ...
在这个特定的案例中,"Advanced Data Import 3"很可能是该系列组件的第三个版本,专注于提高应用程序的数据导入能力。 在Delphi中,数据导入通常用于将数据从各种外部源(如CSV、Excel、XML、数据库等)引入到应用...
本篇将详细讲解如何将Access数据库导入到SQL Server,以实现更高效的数据管理和分析。 首先,我们需要了解Access和SQL Server的基本特性。Access是一款轻量级的桌面数据库应用,适合小型到中型的数据存储,易于上手...
在Java编程领域,将Excel数据读取并存储...这通常用于数据迁移、数据导入或其他需要从非结构化数据源提取信息的场景。记得在实际应用中,根据具体需求调整代码,例如处理不同数量的列、处理空值、检查数据的合法性等。
3. **Access数据库导入** - **语法**: ```sas proc import out=import_ac table='TableName' dbms=access replace; database="C:\path\to\yourfile.mdb"; uid=''; pwd=''; run; ``` - **参数解析**: - `...