SOLR对多个(关联)表创建索引
又两天没写博客,关于SOLR的东西,写了一周了还没写完我也是醉了,毕竟会的东西真不多,周四晚上加班没写,周五晚上公司同事聚会也没写,今天在家,还是把最后的一点写完吧,我会的剩下的也就是一个对多个表创建索引了,表可以是关联的,也可以是不关联的,下面开始。
一、无关联多表创建索引
1.1数据库准备
首先在数据库创建一张表,本来有一个tuser表了,我又创建了一个role表,就两三个字段,没什么特殊的,然后在里面随便添加几条数据即可,看一下数据库:
1.2data-config.xml
数据库创建完成之后就是修改data-config.xml文件了,因为数据库跟solr之间的关联主要就是建立在这个文件上面的,所以接下来就是修改该文件了,我已经写好了,下面直接贴出来看一下即可:
在<document></document>标签中间在添加一个<entity>标签即可,然后把对应的字段添加到中间就可以了,但是要注意几点:
注意:
1.<entity>标签的name属性,该属性用来区分不同的entity,所以不能和其他的entity标签的name相同。
2.pk属性,数据库中表的主键是什么,那么pk属性的值就是什么,不能改变。
3.第三点很重要,首先,我们再schema.xml中配置有这样的属性uniqueKey属性的值,以此来达到索引不覆盖的目的,但是这两种方式我都没有尝试过,大家有兴趣的可以自己去尝试一下。
4.在该文件中可以配置多个dataSource,也就是说如果你两张表不在一个数据库,那么你也可以同时对这两张表创建索引,只需要将表和数据源对应上就可以了,方式如下:
1.3.修改schema.xml
将表中需要创建索引的字段添加到该文件中即可,注意,两个表中相同的字段就可以不用再添加了,比如,两个表中都有id,那么id字段只写一次就可以了。
按照上面的方式配置完成之后,启动tomcat,访问localhost:8080/solr页面,重新创建索引,创建完的索引如下所示:
我数据库中两个表一共只有8条数据,创建的索引也是8条,关于id的事,只要两个表中的id不重复,那么就不会发生索引覆盖的事,所以我这里只是简单做一个例子,关于索引覆盖的事大家可以按照我上面说的几种方法操作就可以了,当然有更好的方法更好了。
二、关联表创建索引
至于关联表创建索引和单表创建索引差不多,本来我是想单独创建几个表,然后再一点一点写出来,但是突然想起来前两天有个朋友给我评论说我写的东西完全看不明白,所以我想这次试试直接使用官方提供的例子来写,什么意思呢?就是把官方文档上的内容粘贴过来试试,其实官方文档写的更好。
2.1.数据库配置
2.2.data-congfig.xml配置
除了上面那种方式,官方文档还给出了另外一种方式,但是这种方式我没用过,下面我把那种方式贴出来,也把官方文档的解释贴出来,大家可以自己看着使用吧,不过我还是喜欢使用上面的这种方式:
官方的解释是这样的:
In the above example, there are mappings of fields to Solr fields. It is possible to totally avoid the field entries in entities if the names of the fields are same (case does not matter) as those in Solr schema. You may need to add a field entry if any of the built-in Tranformers are used (see Transformer section)
接下来还是修改schema.xml文档,把需要创建索引的字段放到该文件中即可。
多表创建索引的方式我就介绍完了,虽然写的很粗糙,但是应该还有点用吧,更多的内容大家可以自己去查看官方文档的http://wiki.apache.org/solr/DataImportHandler这个地方,至于有人说都是英文看不懂,关于这个问题我想说的是其实我英文也是半吊子,但是借助一些翻译工具还是能看一点的,看的多了就看的懂了,不要怕看英文,坚持看下去总能看的懂的,就算你看不全懂,至少能明白大概说的什么意思就行啊,带蒙带猜的,这都不是事。
另外关于solr的其他东西我就暂时不不写了,一方面是因为我研究这个时间也不长,有些东西我也不是太懂,目前只能算是刚刚入门吧,另一方面,本来要用solr的项目又说不用了,新开的项目也是比较紧急,所以关于solr的东西也只好暂时先放下了,以后再用到的时候再捡起来继续吧。恩,暂时就这样了。
SOLR对多个(关联)表创建索引的更多相关文章
- Mysql建表+创建索引
创建表时可以直接创建索引,这种方式最简单.方便.其基本形式如下: CREATE TABLE 表名( 属性名 数据类型[完整性约束条件], 属性名 数据类型[完整性约束条件], ...... 属性名 数 ...
- Lucene学习之一:使用lucene为数据库表创建索引,并按关键字查询
最近项目中要用到模糊查询,开始研究lucene,期间走了好多弯路,总算实现了一个简单的demo. 使用的lucene jar包是3.6版本. 一:建立数据库表,并加上测试数据.数据库表:UserInf ...
- CoreData 从入门到精通(三)关联表的创建
上篇博客中讲了 CoreData 里增删改查的使用,学到这里已经可以应对简单的数据存储需求了.但是当数据模型复杂起来时,例如你的模型类中除了要存储 CoreData 里支持的数据类型外,还有一些自定义 ...
- oracle 创建索引思考(转)
在Oracle数据库中,创建索引虽然比较简单.但是要合理的创建索引则比较困难了. 笔者认为,在创建索引时要做到三个适当,即在适当的表上.适当的列上创建适当数量的索引.虽然这可以通过一句话来概括优化的索 ...
- SQL语句-创建索引
语法:CREATE [索引类型] INDEX 索引名称ON 表名(列名)WITH FILLFACTOR = 填充因子值0~100 GO USE 库名GO IF EXISTS (SELECT * FRO ...
- SQL Server创建索引(转)
什么是索引 拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQL Server中的数据记录也是按页存放的,每页容量一般为4K .为了加快查找的速度,汉语字(词)典一般都有按拼音. ...
- SQL Server创建索引
原文:SQL Server创建索引 什么是索引 拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQL Server中的数据记录也是按页存放的,每页容量一般为4K .为了加快查找的 ...
- (转)SQL Server创建索引
什么是索引拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQL Server中的数据记录也是按页存放的,每页容量一般为4K .为了加快查找的速度,汉语字(词)典一般都有按拼音.笔 ...
- SQLSERVER 创建索引实现代码
是SQL Server编排数据的内部方法.它为SQL Server提供一种方法来编排查询数据 什么是索引 拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQL Server中的数 ...
随机推荐
- Linux查看版本当前操作系统内核信息
1. # uname -a (Linux查看版本当前操作系统内核信息) 输出 Linux xxx --generic #~-Ubuntu SMP Wed Jul :: UTC x86_64 x86_6 ...
- apache配置文件详解与优化
apache配置文件详解与优化 一.总结 一句话总结:结合apache配置文件中的英文说明和配置详解一起看 1.apache模块配置用的什么标签? IfModule 例如: <IfModule ...
- UVA-11761-马尔可夫/记忆化搜索
https://vjudge.net/problem/UVA-11762 给出一个整数n,每次随机挑选一个小于等于n的素数,如果是n的因子,n变为n/x ,否则不变,问n变为1的期望挑选次数. f[i ...
- Invalid bound statement (not found)错误的可能原因
其他原因导致此问题解决参考: 1.检查xml文件所在package名称是否和Mapper interface所在的包名 <mapper namespace="me.tspace.pm. ...
- 快速切题 sgu136. Erasing Edges
136. Erasing Edges time limit per test: 0.25 sec. memory limit per test: 4096 KB Little Johnny paint ...
- js 判断一个对象是否为空
由于对于一个空对象{},其boolean值也是真,所以不能简单的用boolean来判断: jQuery的源码里有一个判断空对象的方法 function isEmptyObject(a) { var b ...
- 关于poi操作excel我使用的一些修饰操作
被这情况恶心了.我的excel默认为常规,然后写入数字就成类似number类型,获取值得到的是double类型,2变成2.0.号码变成科学计数法. 做功能找了一段时间,保存下来防止忘记下次浪费时间. ...
- mac 终端 使用ftp命令
Mac下使用命令行登陆ftp 最近使用forklift下载服务器pureftp上的东西,总是断断续续的,经常下载到99%然后显示下载失败,非常不舒服!原以为是forklift的问题,换了transmi ...
- 总线设备驱动模型---platform篇
总线设备驱动模型----驱动篇 http://blog.chinaunix.net/uid-27664726-id-3334923.html http://blog.chinaunix.net/uid ...
- AI产业将更凸显个人英雄主义 周志华老师的观点是如此的有深度
今天无意间在网上看的了一则推送,<周志华:AI产业将更凸显个人英雄主义> http://tech.163.com/18/0601/13/DJ7J39US00098IEO.html 摘录一些 ...