将数据库表导入到solr索引
将数据库表导入到solr索引
编辑solrcofnig.xml添加处理器
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"><lst name="defaults"><str name="config">data-config.xml</str></lst></requestHandler>
创建一个名为data-config.xml的文件并保存如下内容到conf目录(也就是solrconfig.xml的目录)
<dataConfig><dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver"url="jdbc:mysql://localhost/dbname" user="user-name" password="password"/><document><entity name="id" query="select id,name,desc from mytable"></entity></document></dataConfig>
编辑schema.xml文件,保证文件中有'id','name','desc'等fields。并更改data-config.xml的详细信息。
将JDBC的jar驱动文件放到/lib文件夹中(tomcat/webapps/solr/WEB-INF/lib)
运行命令 http://solr-host:port/solr/dataimport?command=full-import进行全量索引,每次进行全量索引时,会将数据清空,如果不想清空需要添加clean=false。例如http://solr-host:port/solr/dataimport?command=full-import&clean=false
在字段名和field明不同的时候添加索引
修改data-config.xml,如下所示
<dataConfig><dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver"url="jdbc:mysql://localhost/dbname" user="user-name" password="password"/><document><entity name="id" query="select id,name,desc from mytable"><field column="id" name="solr_id"/><field column="name" name="solr_name"/><field column="desc" name="solr_desc"/></entity></document></dataConfig>
写入solr的字段为'solr_id', 'solr_name', solr_desc'。所以schema.xml中必须要要这几个field。
运行 http://solr-host:port/dataimpor?command=full-import 建立索引
配置多个表建立索引
修改data-config如下:
<dataConfig><dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver"url="jdbc:mysql://localhost/dbname" user="user-name" password="password"/><document><entity name="outer" query="select id,name,desc from mytable"><field column="id" name="solr_id"/><field column="name" name="solr_name"/><field column="desc" name="solr_desc"/><entity name="inner"query="select details from another_table where id ='${outer.id}'"><field column="details" name="solr_details"/> </entity></entity></document></dataConfig>
schema.xml应该包含solr_details的字段
运行full-import
mysql配置
下载mysql的JDBC的jar,并拷贝到/lib的文件夹
修改data-config为如下
<dataConfig><dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://ip:3306/dbname" user="username" password="password"/> <document name="products"><entity ......</entity></document></dataConfig>
DataImportHandler支持的命令
abort http://<host>:<port>/solr/dataimport?command=abort 终止命令
delta-import http://<host>:<port>/solr/dataimport?command=delta-import 增量
full-import http://<host>:<port>/solr/dataimport?command=full-import 全量
reload-config http://<host>:<port>/solr/dataimport?command=reload-config 重新加载配置
status http://<host>:<port>/solr/dataimport?command=status 状态查询
将数据库表导入到solr索引相关推荐
- solr mysql 导入命令_Solr 07 - Solr从MySQL数据库中导入数据 (Solr DIH的使用示例)
1 加入数据导入处理器的jar包 复制Solr解压后dist目录中的:solr-dataimporthandler-4.10.4.jar; 粘贴到contrib/dataimporthandler/l ...
- Solr 07 - Solr从MySQL数据库中导入数据 (Solr DIH的使用示例)
目录 1 加入数据导入处理器的jar包 2 加入数据库驱动包 3 配置solrconfig.xml文件 3.1 配置lib标签 - 加入驱动jar包 3.2 配置requestHandler标签 - ...
- MySQL(六):数据库的导入和导出+索引+用户权限管理
文章目录 一.数据备份 二.权限管理 1.创建用户 2.给用户授权 3.删除用户 4.修改用户密码 4.1修改密码步骤 4.2忘记密码怎么办 三.索引 1.为什么要使用索引: 2.添加索引的优缺点: ...
- 关于SQL 数据库表中的聚集索引和非聚集索引等
原文地址:http://www.cppblog.com/zuoyinbo/archive/2008/06/03/52075.html 1.概念 索引是在数据库表或者 ...
- U8API——向U8数据库表导入数据
//[新增或修改]调用示例//如果是非门户的独立进程,请将U8SOFT\ufcomsql目录中的U8Login.dll替换为Debug版的Login.//添加对Interop.U8Login.dll引 ...
- c datatable导入mysql_《项目经验》–简单三层使用DataTable向数据库表批量导入数据—向SqlServer一张表中导入数据 | 学步园...
向数据库的一张表中添加数据,可以采用单个添加,即一条数据.一条数据的添加:也可以采用批量导入,依次将好些条数据写入数据库的一张表中.文本借助实例<添加系列信息>讲解一种向数据库批量导入数据 ...
- 批量向数据库多张表导入数据的实现
转载自 http://blog.csdn.net/mazhaojuan/article/details/8598368 前面已经介绍过如何向数据库的一张表中批量导入数据,详情见博客<项目经验- ...
- 《项目经验》--简单三层使用DataTable向数据库表批量导入数据---向SqlServer多张张表中导入数据
前面已经介绍过如何向数据库的一张表中批量导入数据,详情见博客<项目经验---简单三层使用DataTable向数据库表批量导入数据---向SqlServer一张表中导入数据>:本文主要介绍如 ...
- 导入excel和json数据到数据库表中
导入excel和json数据到数据库表中 1.清除表中数据 2.从excel中导入数据 3.导入JSON数据到表中 Mysql:5.7.33 工具:navicat 12 在所有操作之前先将数据库备份, ...
最新文章
- oracle经典书籍推荐
- 华为交换机配置DHCP服务器
- 香港四大天王影帝情况(截止2016)
- 太强了!Kaggle竞赛宝典方案汇总
- 模型优化在风控中的运用(全)
- 用php的for循环画椭圆,如何快速简单的使用css3画出各种各样的椭圆
- 和catch的区别_面试刷题2:Exception和Error的区别?
- 蓝桥杯2019年第十届C/C++国赛B组 题B-质数拆分(素数筛选+01背包问题)
- c++ STL之unordered_map
- android抓包工具_无需额外工具,简单抓包教程
- linux搜索word文档内容,在目录中搜索MS word文件以获取Linux中的特定内容
- java 追加文件换行_java 追加换行txt
- 奥克兰大学计算机it专业介绍,新西兰奥克兰大学IT硕士专业解析
- 教你如何进行嵌入式网络模块的联网操作
- AI时代的全链路监控(阿里)
- //菱形,内藏十字架
- 雅可比矩阵matlab实现
- thinksnsv4.6运行php,社交开源系统ThinkSNS V4.6.4更新,版本更新提示功能上线
- 手握国企offer,33岁程序员不按常理出牌,网友炸了!
- win10将WLAN网络共享给以太网
热门文章
- php如何查看上传的文件大小,PHP设置最大上传文件大小
- html安卓手机打开后只有半屏,宽度设置100%在移动端时变成一半
- cropper初始化_jQuery.cropper中文API详解
- 答题闯关php,成语答题闯关红包流量主小程序源码
- Eclipse 答疑:Eclipse 如何更换夜间及外部主题?如何修改代码样式、背景颜色、字体大小?为何注释文字大小不一?
- 涉及子模块_COMSOL Multiphysics 5.6 RF模块更新详解
- js 创建keyframe_javascript – 查找特定的CSS @keyframes规则
- matlab bad apple,【bad apple】matlab制作矩阵苹果~
- oracle ora 12011,执行oracle中的job报错:ORA-12011:无法执行作业1
- c语言for循环26个英文字母,菜鸟求助,写一个随机输出26个英文字母的程序