将数据库表导入到solr索引

  1. 编辑solrcofnig.xml添加处理器

     <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的文件并保存如下内容到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>
  3. 编辑schema.xml文件,保证文件中有'id','name','desc'等fields。并更改data-config.xml的详细信息。

  4. 将JDBC的jar驱动文件放到/lib文件夹中(tomcat/webapps/solr/WEB-INF/lib)

  5. 运行命令 http://solr-host:port/solr/dataimport?command=full-import进行全量索引,每次进行全量索引时,会将数据清空,如果不想清空需要添加clean=false。例如http://solr-host:port/solr/dataimport?command=full-import&clean=false

在字段名和field明不同的时候添加索引

  1. 修改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>
  2. 写入solr的字段为'solr_id', 'solr_name', solr_desc'。所以schema.xml中必须要要这几个field。

  3. 运行 http://solr-host:port/dataimpor?command=full-import 建立索引

配置多个表建立索引

  1. 修改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>
  2. schema.xml应该包含solr_details的字段

  3. 运行full-import

mysql配置

  1. 下载mysql的JDBC的jar,并拷贝到/lib的文件夹

  2. 修改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索引的更多相关文章

  1. Solr 07 - Solr从MySQL数据库中导入数据 (Solr DIH的使用示例)

    目录 1 加入数据导入处理器的jar包 2 加入数据库驱动包 3 配置solrconfig.xml文件 3.1 配置lib标签 - 加入驱动jar包 3.2 配置requestHandler标签 - ...

  2. U8API——向U8数据库表导入数据

    一.打开API资源管理器 替换两个引用 打开应用实例,选择相应的功能 复制相应的封装类到自己的目录下 在数据库新建临时表,与目标表相同 数据导入: 思路:先将要导入的数据导入到与U8目标表相同的临时表 ...

  3. SqlServer数据库表导入SqlLite数据库表保持日期时间类型字段的格式

    在写查询功能的过程中遇到一个这样的问题:按日期范围查询,sql语句是:where dt>=用户选择起始日期&&dt<=用户选择结束日期.数据库中的数据如图1,我选择的测试数 ...

  4. access数据库表导入到oracle

    1.本机安装access数据库 25M左右2.创建ODBC数据源,要选择oracle C:\Windows\SysWOW64\odbcad32.exe 3.打开要导入的 .mdb文件 右键表--> ...

  5. mysql数据库 表 导入导出

    1.导出表结构 mysqldump --no-data -h192.168.222.11 -uroot -proot --databases db01 db02 db30>file.sql 2. ...

  6. 数据库表中不建索引,在插入数据时,通过sql语句防止重复添加

    sql 语句 INSERT IGNORE INTO table(aaa,bbb) SELECT '1111','2222' FROM DUAL WHERE NOT EXISTS( ' ) mybati ...

  7. Solr 4.4.0利用dataimporthandler导入postgresql数据库表

    将数据库edbstore的edbtore schema下的customers表导入到solr 1. 首先查看customers表字段信息 edbstore=> \d customers Tabl ...

  8. SAP中的数据库表索引

    数据库表中的索引可以加快查询的速度.索引是数据库表字段的有序副本.附加的字段包含指向真实数据库表行的指针.排序可以使访问表行的速度变快,例如,可以使用二分搜索.数据库表至少有一个主索引,由它的key字 ...

  9. oralce 超过1亿条数据的数据库表清理实践

    2018-08-18 16:58 无腿鸟 阅读(331) 评论(0) 编辑 收藏 问题:当一个表的数据量超过一亿条,要删除其中的5000w条,如何处理. 如果直接使用delete语句,会涉及到到大量的 ...

随机推荐

  1. Android 5.x特性概览二

    上文 ,对Android 5.X特性,主要是Material Design的特性进行了介绍,这篇文章我们来使用Material Design主题. Material Design 现在有三种默认的主题 ...

  2. PropertyChangedCallback 只触发了一次?

    在自定义的用户控件中,添加一个依赖属性,如下: public static readonly DependencyProperty ItemsSourceProperty = DependencyPr ...

  3. 设计模式之美:Builder(生成器)

    索引 意图 结构 参与者 适用性 效果 相关模式 实现 实现方式(一):Builder 为每个构件定义一个操作. 实现方式(二):Builder 将构件返回给 Director,Director 将构 ...

  4. Kali Linux Web 渗透测试视频教程—第十课 w3af

    Kali Linux Web 渗透测试视频教程—第十课 w3af 文/玄魂 原文链接:http://www.xuanhun521.com/Blog/2014/10/24/kali-linux-web- ...

  5. webpy使用笔记(一)

    webpy入门 工作环境中需要经常生产和测试服务器,机房一直很混乱,因此萌生了开发一个简单方便的服务器管理系统(说的好高大上,其实就是个可以获取服务器信息的小web应用).之所以选择webpy,正式因 ...

  6. html5之canvas画图

    导航 前言 基本知识 绘制矩形 清除矩形区域 圆弧 路径 绘制线段 绘制贝塞尔曲线 线性渐变 径向渐变(发散) 图形变形(平移.旋转.缩放) 矩阵变换(图形变形的机制) 图形组合 给图形绘制阴影 绘制 ...

  7. 成功安装mysql后,为何服务管理器里找不到MYSQL服务名

    1.打开cmd,切换到mysql的bin目录下 2. D:\Program Files\MySQL5.1\bin>mysqld.exe -installService successfully ...

  8. Atitit.词法分析的原理 理论

    Atitit.词法分析的原理 理论 1. 分词 .词法分析lexical analysis 1 1.1. 分词主要流程 1 1.2. 分词的属性如下表token 1 1.3. 词法分析器主要包括:构造 ...

  9. 用ColorMatrix將Bitmap轉成灰度图

    在Android中,若想將整張圖片轉成灰階效果其實有更簡便的方式,只要透過ColorMatrix類別的setSaturation函式將飽和度設為0即可.(您也可以試試從0~1之間的值,看看不同飽和度的 ...

  10. 苹果App部署HTTPS进行在线下载安装

    苹果App的ipa下载需要有几个前提,可参考:Android和IOS的本地App如何安装(apk&ipa) 本文主要介绍如何部署https提供ipa的下载,步骤如下: 1. 搭建一个HTTPS ...