【发布时间】:2013-07-18 08:35:32
【问题描述】:
我们索引的数据库中有大约 1000 万条记录,我们很高兴这样做,因为通过从 solr 而不是 db 获取记录,我们看到了高性能优势。 该数据用于报告。
目前我们在索引中保留平面数据。例如:
Itemid, Companyname, Username, Status
只要商品的状态发生变化,例如从 Received 变为 Sold,我们就会调用 solr api 来更新记录。一切运作良好。我们有实时更新索引,报告效果很好。
问题 1:现在假设用户将公司名称从 A 公司更新为 B 公司,或者用户名从 Mike 更新为 Jimmy,我们应该如何处理? p>
我的想法
监听用户和公司更新事件,只更新 name = old name 的 solr 索引
在索引中保留公司和用户的 ID,而不是名称。从 solr 获取记录后,再次点击 db 以获取更新的名称。这将是一种混合方法,主要字段来自索引,只有这些字段来自数据库表
问题 2:我正在调用 solr update 来更新每次调用的状态转换索引。现在有更好的方法来做到这一点吗?在未来的性能损失或状态转换频率增加时,我是否遗漏了什么?
问题 3:假设将来需要在报告中再显示一个尚未编入索引的列。这样做的标准可接受的方式是什么?
请分享您对此的专家建议。
【问题讨论】:
标签: solr