首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该多久上传一次文档到CloudSearch (Solr)?

我应该多久上传一次文档到CloudSearch (Solr)?
EN

Stack Overflow用户
提问于 2015-07-05 16:22:37
回答 1查看 378关注 0票数 1

这里是我的用例:

我使用MySQL作为我的主要数据存储区,并使用CloudSearch进行搜索。数据库包含表:线程、注释、向上表决、用户。

我创建了一个表达式,用于根据“趋势”对搜索结果进行排序,使用upvotes和created_at date (黑客新闻热点算法)。这个表达式称为“趋势”,并用于如下CloudSearch查询:/search?q=Superman&sort=trend+desc

代码语言:javascript
复制
(upotes-1)/pow(floor((_time-created_at)/3600000)+2, 1.8)

现在,当用户更新线程或注释时,它将存储在MySQL数据库中。我的问题我应该如何与CloudSearch保持同步?

我看到两个选择:

  1. 立即在MySQL中插入(替换)一个向上投票,然后更新CloudSearch上的得分。这包括在每次投票时发送一个文件上传,但要确保实时的准确性.
  2. 立即在MySQL中插入(替换)一个向上投票,然后将向上投票保留在某个缓存中(Redis?)。每小时上传一次,上传到CloudSearch。

处理这种情况的最佳方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-05 20:56:05

这取决于很多事情

  1. 您的solr设置、多少服务器、多少内存、CPU、存储、多少文档、每个碎片/服务器的索引大小等。
  2. 你预计会有多少“估计”票数上升?如果选择1,将更容易决定是否可以估计这个数字。 由于您使用的是SolrCloud,所以它具有NRT功能,它确保文档几乎可以立即用于搜索。但是,这同样取决于您当前的文档语料库,以及您期望的每秒更新次数。

如果您知道上行票的数量(对solr的更新),如果您有足够好的服务器,我将选择选项1,因为它将减少维护另一个数据库的开销,以及每小时更新到solr的更新逻辑。

您可以始终设置几个测试服务器,并进行一些压力测试,以找出Solr性能下降的确切更新数量。

我知道这可能不会给出一个确切的是或否,但正如我所说,它确实取决于您的特定用例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31232450

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档