solr学习(四)solr跨collection查询-单机版(URL实现)

单机版的跨collection捣鼓了好久。

首先无论是单机版还是集群版,需要跨的collection的字段必须要一致。

首先尝试url的方式看是否可行:

这里有两个collection:collection1和collection2,两个都有id字段,collection1有tagComment字段,collection2中没有:

尝试查询tagComment这个collection1中有而collection2中没有的字段:

使用以下连接查询:

http://192.168.220.131:8080/solr/collection1/select?q=id:collection1_1&wt=json&indent=true&shards.info=true&shards=http://192.168.220.131:8080/solr/collection1,http://192.168.220.131:8080/solr/collection2

出错了,找不到tagComment,说明你查询条件的那个字段所在的数据中的字段,两个collection要一致。

那就这么来,在collection1和collection2中分别插入一条id为1的索引数据,字段不一致,我用id作为查询条件:

执行查询:

可以查询出来,但是每次刷新页面查询的结果是随机来自于collection1和collection2:

感觉没有得出想要的结论,换个方法尝试,在collection1和collection2中分别插入两条字段一致的索引数据,id不同,其他字段相同:

我查询titile:111title再来试试查询结果:

非常完美,查询出了4条数据,都查出来了!

很完美,但是我这里是id都不一样,那么在字段一致的情况下id一样会怎么样呢,因为在一个collection中id必须是唯一的:

于是又在collection1和collection2中分别增加了三条数据,其中orgId用来区分数据是来自collection1还是collection2:

查询结果,非常完美:

6条数据全部查询出来了,说明solr是支持跨collection查询的。那么跨collection的id相同的会怎么样呢,也就是不同collection的id可以一致吗:

在collecion2中新建了一条id与collection1一样的一条数据:

而在collection1中有这样一条数据,除了orgId不一样,其他的包括id所有的数据都一样:

再次执行查询:

刷新后这条数据:

最终得出了,如果返回的结果数据中出现两个collection中id重复,每次请求这条id重复的数据会随机来自某个collection,总的来说,就算是跨collection搜索,最好id不要重复。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值