我们索引的 db 中有大约 1000 万条记录,我们很高兴这样做,因为通过从 solr 而不是 db 获取记录,我们看到了高性能优势。该数据用于报告。
目前,我们在索引中保持扁平数据。例如:
Itemid, Companyname, Username, Status
一旦项目的状态改变,例如从 Received 到 Sold,我们调用 solr api 来更新记录。一切运作良好。我们有实时更新索引,报告效果很好。
问题 1:现在假设用户将公司名称从 A 公司更新为 B 公司,或者用户名从 Mike 更新为 Jimmy,我们应该如何处理这个问题?
我的想法
监听用户和公司更新事件并仅更新名称 = 旧名称的 solr 索引
将公司和用户的 id 保留在索引中而不是名称中。从 solr 获取记录后,再次点击 db 以获取更新的名称。这将是一种混合方法,其中主要字段来自索引,只有这些字段来自 db 表
问题 2:我正在调用 solr update 来更新每次调用的状态转换索引。现在有更好的方法来做到这一点吗?我是否错过了未来的性能影响或状态转换频率增加时的任何内容?
问题 3:假设将来需要在报告中再显示一个尚未编入索引的列。这样做的标准可接受方式是什么?
请分享您对此的专家建议。