这里是我的用例:
我使用MySQL作为我的主要数据存储区,并使用CloudSearch进行搜索。数据库包含表:线程、注释、向上表决、用户。
我创建了一个表达式,用于根据“趋势”对搜索结果进行排序,使用upvotes和created_at date (黑客新闻热点算法)。这个表达式称为“趋势”,并用于如下CloudSearch查询:/search?q=Superman&sort=trend+desc
(upotes-1)/pow(floor((_time-created_at)/3600000)+2, 1.8)现在,当用户更新线程或注释时,它将存储在MySQL数据库中。我的问题我应该如何与CloudSearch保持同步?
我看到两个选择:
处理这种情况的最佳方法是什么?
发布于 2015-07-05 20:56:05
这取决于很多事情
如果您知道上行票的数量(对solr的更新),如果您有足够好的服务器,我将选择选项1,因为它将减少维护另一个数据库的开销,以及每小时更新到solr的更新逻辑。
您可以始终设置几个测试服务器,并进行一些压力测试,以找出Solr性能下降的确切更新数量。
我知道这可能不会给出一个确切的是或否,但正如我所说,它确实取决于您的特定用例。
https://stackoverflow.com/questions/31232450
复制相似问题