我正在使用Django开发Python的Web应用程序,用于安排医疗服务。使用的数据库是Mysql。
系统有几个复杂的搜索。为了获得良好的性能,我正在使用elasticsearch。我们的想法是仅索引可搜索的数据。在ES中创建的文档与数据库中的建模不完全相同,例如,Patient实体在DB中具有映射为ES中的属性的关系。
我怀疑在更新某些关系时,在什么时候更新ES中的记录。
每当在数据库中创建,更改或删除对象时,我正在更新ES中的注册表。在关系的情况下,我需要获取父实体来更新记录。
另一种策略是定期执行完整索引。此策略的问题在于更改与可用于搜索之间的延迟。
在这种情况下,最好的策略是什么?