在Solr中更新易失性数据有哪些策略?

在Solr中更新易失性数据有哪些策略?,solr,data-modeling,Solr,Data Modeling,在Solr中更新易失性数据有哪些策略?想象一下,如果您需要在Solr索引中对YouTube视频数据进行建模:您将如何保持“视图”数据的新鲜度而不使Solr陷入更新中 我可以想象,将“视图”数据存储在另一个数据存储中(比如MongoDB或Redis)是最好的主意,这样可以更好地处理快速更新 但是,用这些数据定期更新索引的最佳方法是什么?在这种情况下,增量导入有意义吗?增量导入在运行查询的性能方面对Solr有什么影响?首先需要定义“fresh” “新鲜”1ms吗?如果是这样,当值(呈现的html)到

在Solr中更新易失性数据有哪些策略?想象一下,如果您需要在Solr索引中对YouTube视频数据进行建模:您将如何保持“视图”数据的新鲜度而不使Solr陷入更新中

我可以想象,将“视图”数据存储在另一个数据存储中(比如MongoDB或Redis)是最好的主意,这样可以更好地处理快速更新

但是,用这些数据定期更新索引的最佳方法是什么?在这种情况下,增量导入有意义吗?增量导入在运行查询的性能方面对Solr有什么影响?

首先需要定义“fresh”

“新鲜”1ms吗?如果是这样,当值(呈现的html)到达浏览器时,由于网络延迟,它不再是新鲜的。这真的重要吗?对于绝大多数情况,不需要真正的实时结果

更常见的限制是1s。在这种情况下,Solr可以使用(一个插件)或(目前仅在Solr4.0 trunk中提供)来处理这个问题

“增量导入”是来自DataImportHandler的一个术语,没有太多内在含义。从Solr服务器的角度来看,只有文档添加,不管它们来自何处,也不管一组文档是否代表“整个”数据集

如果您想在项目创建/修改后1s内对其进行索引,那么就这样做,在项目创建/修改后将其添加到Solr中(例如,在DAL中使用挂钩)。这应该异步完成,并使用RA或软提交。

首先需要定义“刷新”

“新鲜”1ms吗?如果是这样,当值(呈现的html)到达浏览器时,由于网络延迟,它不再是新鲜的。这真的重要吗?对于绝大多数情况,不需要真正的实时结果

更常见的限制是1s。在这种情况下,Solr可以使用(一个插件)或(目前仅在Solr4.0 trunk中提供)来处理这个问题

“增量导入”是来自DataImportHandler的一个术语,没有太多内在含义。从Solr服务器的角度来看,只有文档添加,不管它们来自何处,也不管一组文档是否代表“整个”数据集


如果您想在项目创建/修改后1s内对其进行索引,那么就这样做,在项目创建/修改后将其添加到Solr中(例如,在DAL中使用挂钩)。这应该以异步方式完成,并使用RA或软提交。

您可能对所谓的“近实时搜索”或NRT感兴趣,它现在可以在Solr的trunk上使用,旨在处理这个问题。有关更多信息和链接,请参阅。

您可能对所谓的“近实时搜索”或NRT感兴趣,该软件现在可在Solr的trunk上使用,旨在解决这一问题。有关更多信息和链接,请参阅。

如何使用外部文件字段?
这有助于在单独的文件中维护索引之外的数据,您可以定期刷新该文件,而无需对索引进行任何更改

对于下载、视图、排名等快速变化的数据,这是一个不错的选择。
更多信息@


这有一些限制,因此您需要根据需要进行检查。

使用外部文件字段如何?
这有助于在单独的文件中维护索引之外的数据,您可以定期刷新该文件,而无需对索引进行任何更改

对于下载、视图、排名等快速变化的数据,这是一个不错的选择。
更多信息@


这有一些限制,因此您需要根据需要进行检查。

谢谢!我不太关心实时更新索引。我更关心的是,如果有成百上千的人同时执行一个文档的提交(想象成百上千的人观看同一个YouTube视频),Solr是否能够处理而不崩溃?@Andrew:这取决于太多的因素。。。如果你的意思是如果Solr可以处理100000次添加/秒,那么不,我认为它在任何硬件上都不能。也许在嵌入式模式下。我同意,肯定有很多因素在起作用。那么,在计划的基础上(比如每5-10分钟)从备用数据源将数据导入solr的最佳策略是什么?@Andrew Hare:DataImportHandler,DAL hooks,外部计划进程。。。就我个人而言,我非常不喜欢DataImportHandler。谢谢!我不太关心实时更新索引。我更关心的是,如果有成百上千的人同时执行一个文档的提交(想象成百上千的人观看同一个YouTube视频),Solr是否能够处理而不崩溃?@Andrew:这取决于太多的因素。。。如果你的意思是如果Solr可以处理100000次添加/秒,那么不,我认为它在任何硬件上都不能。也许在嵌入式模式下。我同意,肯定有很多因素在起作用。那么,在计划的基础上(比如每5-10分钟)从备用数据源将数据导入solr的最佳策略是什么?@Andrew Hare:DataImportHandler,DAL hooks,外部计划进程。。。就我个人而言,我非常不喜欢DataImportHandler。抱歉-我看到了第一个链接,错过了第二个链接。抱歉-我看到了第一个链接,错过了第二个链接。ExternalFileField是我考虑过的,但不幸的是,此时该文件中的数据只能用于函数查询,不能作为文档的一部分返回。External通过将文件字段明确指定为fl参数中的字段,可以将其作为文档的一部分进行检索:
fl=*,字段(eff_视图)
,其中
eff_视图
是外部文件字段。您还可以将它们别名为一个更好的字段名,如下所示:
fl=id,views:field(eff\u views)
ExternalFileField是我考虑的东西