Solr文档更新

时间:2015-10-04 15:20:00

标签: mysql solr

我有一个wp_postmeta表,其中post_idmeta_valuemeta_key为其列。然后我有一个wp_customer_review表,其中包含特定帖子的客户的所有评论详细信息,其中一个是评级。

我正在索引Solr中的所有这些帖子,并使用一个插件在帖子更新时更新Solr索引。为了列出帖子,根据用户查询我拉相关文档。文档中的一个这样的字段是平均评级,这意味着每个Solr文档都需要具有该字段。

所以目前我可以想到两个选项

  • 每当客户对商家信息进行评级时,我都会计算平均评分并在wp_postmeta中更新。
  • 每天运行一次或两次cron作业来完成同样的工作?

我对正确的做法感到困惑。任何帮助,将不胜感激。感谢。

2 个答案:

答案 0 :(得分:0)

桌子有多大?当客户给出评级时,您是否需要更新1条记录? 100条记录? 100,000条记录?平均变化的频率是多少?

考虑到这一点,我必须采取混合方法。我假设当一个列表记录很少时,平均值会在评论进入时发生显着变化。当列表有100,000个评论时,平均值不会因每次评论而发生变化。

我可能会定义一个阈值。根据X评论 - 平均值会在现场发生变化。超过这个数字,平均值将在当天结束时计算。

答案 1 :(得分:0)

此过程是否需要优化?我的意思是,您的用户是否如此快地发布评论以至于您担心Solr资源利用率?听起来一个用户评论操作将触发最多一个文档更新。

通常最快的解决方案是最佳的初始解决方案。我建议在添加评论时更新/重新索引Solr文档:已编辑。

如果更新量很高,请开始监视更新延迟和查询延迟,以查看是否在高更新负载下看到降级。如果是这样,那么像Uri这样的解决方案就可以了。