我可以在Solr查询中查询2个不同的集合吗?

问题描述

我有一个要求,我需要在页面上显示两个不同Solr集合的数据。但是这两个集合没有任何共同的字段或关系。

例如

`Collection 1 fields -> field1(unique key),feild 2,field 3`

Collection 2 fields -> field4(unique key),feild 5

结果应该是基于字段1的收集1数据和基于字段4的收集2数据的组合。

解决方法

innerJoin包装两个流,左和右。对于左中的每个元组 在Right中存在一个包含两个元组字段的元组 将被发射。这支持一对一,一对多,多对一, 以及多对多内部联接方案。元组在 它们出现在“左”信息流中的顺序。两个流都必须是 按用于确定相等性的字段(“上” 参数)。如果两个元组都包含相同名称的字段,则 Right流中的值将在发出的元组中使用。您可以 用select(...)表达式包装传入的流以使其特定 关于所发出的元组中包含哪些字段值

您可以使用Solr Streaming表达式。

innerJoin(
  search(Collection1,q="*:*",qt="/export",fl="field1,fields2",sort="commonField asc"),search(Collection2,fl="field3,fields4",sort="commonField  asc"),on="commonField "
)

请参考solr链接以获取更多关于同一选项的信息 Solr Streaming

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...