solr - 我可以在 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 包裹两个流,左和右。对于 Left 中存在于 Right 中的每个元组,将发出一个包含两个元组的字段的元组。这支持一对一、一对多、多对一和多对多的内部连接方案。元组按照它们在左流中出现的顺序发出。两个流都必须按用于确定相等性的字段(“on”参数)进行排序。如果两个元组都包含同名字段,则来自 Right 流的值将用于发出的元组中。您可以使用 select(...) 表达式包装传入的流,以具体说明哪些字段值包含在发出的元组中
您可以使用 Solr Streaming 表达式。
innerJoin(
search(Collection1, q="*:*", qt="/export", fl="field1, fields2", sort="commonField asc"),
search(Collection2, q="*:*", qt="/export", fl="field3, fields4", sort="commonField asc"),
on="commonField "
)
请参阅 solr 链接以获取有关同一 Solr 流式传输的更多选项
推荐阅读
- python - 如何提取/剪切模型分类的图像部分?
- python - 使用 ConvLSTM 进行分类(识别歌曲是否由 X 歌手制作)
- pyspark - 如何从 Spark 中另一个 RDD 的前 n 项生成 RDD?
- java - 如何使用 SQL-lite 数据库检索到 android studio 中的单选按钮组
- swift - PDFView 中的透明背景颜色不再适用于 Mac Catalyst 13.0+
- python - 如何使用 regex 和 defaultdict 创建带有列表的字典
- java - 在 Ubuntu 中使用 javac 编译时出错
- postgresql - 我可以将 postgresql 配置为自动截断长字符串吗
- c - 调整 .bmp 文件的大小和结果文件的大小是错误的
- python - 运行此循环时出现错误