我有多个数据源,我想从中生成Solr文档。一个来源是文件系统,所以我计划迭代一组(可能很多)文件来收集每个生成的Solr文档中的一部分数据。第二个来源是另一个Solr索引,我想从中拉出几个字段。第二个来源也可能有很多(〜百万)记录。如果重要,源1提供了大部分内容(每个记录的大小比源2的大几个数量级)。
来源1:
来源2:
我的问题是如何最好地设计此工作流程。一些高级选择包括:
因此影响决策的一些因素包括数据的大小(在计算时间或内存方面不能太低效)以及Solr在替换记录时的性能(原始大小是否重要? )。
非常感谢任何想法。
答案 0 :(得分:1)
我想说如果您不关心存储在两个源中的数据首先被合并,那么选项1或2将正常工作。我可能首先索引较大的源,然后用第二个索引“更新”。
答案 1 :(得分:1)
使用选项3 - 在更新前合并记录。
据推测,您将使用脚本迭代文件并在将它们发送到最终的Solr索引之前对其进行处理。在该脚本中,使用共享标识符查询备用Solr索引以获取它可能具有的任何补充字段信息。将其与您文件的内容合用,然后将结果记录发送给Solr进行索引。
通过在更新之前进行组合,您不必担心记录会相互覆盖。您还可以更好地控制哪个源具有优先级。此外,只要您不查询该国另一边的服务器,我就会假设备用Solr索引的请求时间可以忽略不计。