提问人:JIGME 提问时间:11/9/2023 最后编辑:JIGME 更新时间:11/9/2023 访问量:45
优化 ElasticSearch 与 Rails 的集成
Optimizing ElasticSearch Integration with Rails
问:
上下文:我目前正在增强我的 Rails 应用程序中的 ElasticSearch 集成,处理一个复杂的数据模型,包括:
Potgres 数据库 ORM的 大约 100k 数据 大约 50 个具有各种关联类型(多对多、属于、多态)的关联表。 ElasticSearch CRUD 的自定义 Gem 实现,因为官方 ElasticSearch Gem 中存在限制,不支持关联的模型 CUD 操作。
挑战:当前的实现对 CRUD 操作使用after_commit回调,但我面临着性能问题,尤其是在关联方面。例如:
更新子模型时,在全局搜索中反映更改之前,我遇到了明显的延迟(大约 3 小时)。
调查:我怀疑延迟与缓慢的PostgreSQL查询有关,尤其是在处理大量关联和大型数据集时。
问题:
优化策略:
如何优化 ElasticSearch 更新过程以使其更加即时,尤其是在处理大量关联和大型数据集时?
是否有特定的策略可以提高多对多关系和多态关联的性能?
数据库查询性能:
在更新关联的子模型时,可以对 PostgreSQL 查询应用哪些优化来加快父模型的检索? 替代方法:
在具有复杂关联的 Rails 应用程序中处理 ElasticSearch 更新是否有其他方法或最佳实践?
其他信息:由于官方 ElasticSearch Gem 的限制,使用自定义 Gem。
主要瓶颈似乎是反映全局搜索变化的延迟,尤其是在更新子模型时。
答: 暂无答案
评论