elasticsearch,django-models,django-views,django-templates,Django,elasticsearch,Django Models,Django Views,Django Templates" /> elasticsearch,django-models,django-views,django-templates,Django,elasticsearch,Django Models,Django Views,Django Templates" />

用于将外部数据与Django'集成的设计模式;s数据库支持的模型

用于将外部数据与Django'集成的设计模式;s数据库支持的模型,django,elasticsearch,django-models,django-views,django-templates,Django,elasticsearch,Django Models,Django Views,Django Templates,我正在构建一个Django web应用程序,它维护MySQL数据库中的关系数据以及ElasticSearch(用于优化搜索)中的松散耦合(通过引用ID)全文数据。当创建一个新对象时,我利用Django signals+芹菜任务将全文数据异步索引到Elasticsearch via中,这非常有效。我最初是从更紧密耦合的方法(和)开始的,但我很快意识到我失去了灵活性,决定稍微去耦合 现在,随着我开始开发我的视图/模板(我主要利用模型查询集等),我已经完成了一个完整的循环,我面临着如何最好地“折叠”松

我正在构建一个Django web应用程序,它维护MySQL数据库中的关系数据以及ElasticSearch(用于优化搜索)中的松散耦合(通过引用ID)全文数据。当创建一个新对象时,我利用Django signals+芹菜任务将全文数据异步索引到Elasticsearch via中,这非常有效。我最初是从更紧密耦合的方法(和)开始的,但我很快意识到我失去了灵活性,决定稍微去耦合

现在,随着我开始开发我的视图/模板(我主要利用模型查询集等),我已经完成了一个完整的循环,我面临着如何最好地“折叠”松散耦合的外部数据的决策。例如,如果我的主页默认显示50个最新对象的列表,但用户执行全文搜索,那么如何最好地用ES搜索结果替换页面上的对象(通过Ajax),同时链接相应的数据库数据?然后当按下过滤器并清除搜索时,返回到模型Queryset数据

换句话说,将外部数据与Django ORM/数据库支持模型集成的最佳实践实现和设计模式是什么?它是一个基于REST的API层,可以合并来自多个源的结果吗?查看功能?模型上可以动态查询Elasticsearch的classmethod?还有别的吗