多表利用DIH批量导入数据并建立索引注意事项
如果希望同时对多个表进行全文检索,那我们该如何处理呢?利用DIH导入数据并建立索引时。schema.xml中配置了uniqueKey为id
<uniqueKey>id</uniqueKey>
如果多表主键都为id的话索引会被覆盖
<!--deltaImportQuery和deltaQuery为增量导入时使用。-->
<entity name="case"
pk="id"
query="SELECT id,title, summary, 'case' as type FROM case"
deltaImportQuery="SELECT id, title, summary, 'case' as type from case WHERE id='${dih.delta.id}'"
deltaQuery="SELECT id, title, summary, 'case' as type FROM case WHERE create_time > '${dih.last_index_time}'"
>
<!--field用于配置schema.xml中field和数据库字段的对应关系。column:数据库中字段名称,name:schema.xml中配置的名称-->
<field column="id" name="id"/>
<field column="title" name="title"/>
<field column="summary" name="summary"/>
</entity> <!--deltaImportQuery和deltaQuery为增量导入时使用。-->
<entity name="casetest"
pk="id"
query="SELECT id,title, summary, 'case_test' as type FROM casetest"
deltaImportQuery="SELECT id, title, summary, 'case_test' as type from casetest WHERE id='${dih.delta.id}'"
deltaQuery="SELECT id, title, summary, 'case_test' as type FROM casetest WHERE create_time > '${dih.last_index_time}'"
>
<!--field用于配置schema.xml中field和数据库字段的对应关系。column:数据库中字段名称,name:schema.xml中配置的名称-->
<field column="id" name="id"/>
<field column="title" name="title"/>
<field column="summary" name="summary"/>
<field column="type" name="type"/>
</entity>
由于id是唯一键,如果id重复索引会被覆盖掉。此时可以加个简易的标识,以便构造不同表的uniqueKey
修改后配置文件
<!--deltaImportQuery和deltaQuery为增量导入时使用。-->
<entity name="case"
pk="id"
query="SELECT concat('case_Type_', id) as id,title, summary, 'case' as type FROM case"
deltaImportQuery="SELECT concat('case_Type_', id) as id, title, summary, 'case' as type from case WHERE id='${dih.delta.id}'"
deltaQuery="SELECT concat('case_Type_', id) as id, title, summary, 'case' as type FROM case WHERE create_time > '${dih.last_index_time}'"
>
<!--field用于配置schema.xml中field和数据库字段的对应关系。column:数据库中字段名称,name:schema.xml中配置的名称-->
<field column="id" name="id"/>
<field column="title" name="title"/>
<field column="summary" name="summary"/>
</entity> <!--deltaImportQuery和deltaQuery为增量导入时使用。-->
<entity name="casetest"
pk="id"
query="SELECT concat('case_test_Type_', id) as id,title, summary, 'case_test' as type FROM casetest"
deltaImportQuery="SELECT concat('case_test_Type_', id) as id, title, summary, 'case_test' as type from casetest WHERE id='${dih.delta.id}'"
deltaQuery="SELECT concat('case_test_Type_', id) as id, title, summary, 'case_test' as type FROM casetest WHERE create_time > '${dih.last_index_time}'"
>
<!--field用于配置schema.xml中field和数据库字段的对应关系。column:数据库中字段名称,name:schema.xml中配置的名称-->
<field column="id" name="id"/>
<field column="title" name="title"/>
<field column="summary" name="summary"/>
<field column="type" name="type"/>
</entity>
多表利用DIH批量导入数据并建立索引注意事项的更多相关文章
- 项目总结04:SQL批量导入数据:将具有多表关联的Excel数据,通过sql语句脚本的形式,导入到数据库
将具有多表关联的Excel数据,通过sql语句脚本的形式,导入到数据库 写在前面:本文用的语言是java:数据库是MySql: 需求:在实际项目中,经常会被客户要求,做批量导入数据:一般的简单的单表数 ...
- 批量导入数据表(oracle)
批量导入数据表(oracle) 1.登陆plsql 2.找到菜单栏 工具>>导入数据>>新增图标(会提示选择*.csv文件) 选择如上图所示 3.选择数据并导入 4.下图为执行 ...
- csv文件批量导入数据到sqlite。
csv文件批量导入数据到sqlite. 代码: f = web.input(bs_switch = {}) # bs_switch 为from表单file字段的namedata =[i.split( ...
- 批量导入数据到mssql数据库的
概述 批量导入数据到数据库中,我们有好几种方式. 从一个数据表里生成数据脚本,到另一个数据库里执行脚本 从EXCEL里导入数据 上面两种方式,导入的数据都会生成大量的日志.如果批量导入5W条数据到数据 ...
- java使用POI实现Excel批量导入数据
1.准备工作 1.1 创建模板表头与数据库表字段一一对应,示例如下 1.2将模板放入项目中,如下图所示: 2.前端页面 2.1 使用超链接提供模板下载地址 <html lang="zh ...
- 使用python向Redis批量导入数据
1.使用pipeline进行批量导入数据.包含先使用rpush插入数据,然后使用expire改动过期时间 class Redis_Handler(Handler): def connect(self) ...
- Cassandra使用pycassa批量导入数据
本周接手了一个Cassandra系统的维护工作,有一项是需要将应用方的数据导入我们维护的Cassandra集群,并且为应用方提供HTTP的方式访问服务.这是我第一次接触KV系统,原来只是走马观花似的看 ...
- Redis批量导入数据的方法
有时候,我们需要给redis库中插入大量的数据,如做性能测试前的准备数据.遇到这种情况时,偶尔可能也会懵逼一下,这里就给大家介绍一个批量导入数据的方法. 先准备一个redis protocol的文件( ...
- asp.net线程批量导入数据时通过ajax获取执行状态
最近因为工作中遇到一个需求,需要做了一个批量导入功能,但长时间运行没个反馈状态,很容易让人看了心急,产生各种臆想!为了解决心里障碍,写了这么个功能. 通过线程执行导入,并把正在执行的状态存入sessi ...
随机推荐
- js中的with语句
javascript中的with语句是什么? with 语句可以方便地用来引用某个特定对象中已有的属性,但是不能用来给对象添加属性.要给对象创建新的属性,必须明确地引用该对象. 看起来 ...
- Java基础-final变量和普通变量的区别
当用final作用于类的成员变量时,成员变量(注意是类的成员变量,局部变量只需要保证在使用之前被初始化赋值即可)必须在定义时或者构造器中进行初始化赋值,而且final变量一旦被初始化赋值之后,就不能再 ...
- Yii2 RBAC 用到的表
Yii2 RBAC用到的四张auth表位于 vendor/yiisoft/yii2/rbac/migration文件夹里面,可以用migration生成 yii migrate --migration ...
- BZOJ-1477 青蛙的约会 拓展欧几里德
充权限之前做的...才来交 1477: 青蛙的约会 Time Limit: 2 Sec Memory Limit: 64 MB Submit: 369 Solved: 233 [Submit][Sta ...
- 学习笔记 BIT(树状数组)
痛定思痛,打算切割数据结构,于是乎直接一发BIT 树状数组能做的题目,线段树都可以解决 反之则不能,不过树状数组优势在于编码简单和速度更快 首先了解下树状数组: 树状数组是一种操作和修改时间复杂度都是 ...
- SpringMVC配置
博客园 闪存 首页 新随笔 联系 管理 订阅 随笔- 4 文章- 1 评论- 0 搭建springmvc框架的另一种思路 在一个完整的项目里搭建springmvc框架的时候, 通常情况下,初学者 ...
- Mysql安全配置
相关学习资料 http://drops.wooyun.org/tips/2245 http://www.cnblogs.com/siqi/archive/2012/11/21/2780966.html ...
- C#获取本机的MAC地址
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.M ...
- Mac Sublime Text 2 简单使用
按 Ctrl+` 调出 console 粘贴以下代码到底部命令行并回车: import urllib2,os;pf='Package Control.sublime-package';ipp=subl ...
- linux crontab介绍
第1列分钟1-59第2列小时1-23(0表示子夜)第3列日1-31第4列月1-12第5列星期0-6(0表示星期天)第6列要运行的命令 下面是crontab的格式:分 时 日 月 星期 要运行的命令 这 ...