首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在solr (django webapp)中批量更新文档

在solr (django webapp)中批量更新文档
EN

Stack Overflow用户
提问于 2016-03-14 05:24:02
回答 1查看 115关注 0票数 0

我在mysql中有几个表,我已经在solr中对这些表进行了非规范化和索引。这意味着在solr中,多个表中的行组成一个文档。当请求出现时,它可能更新mysql中的多个表,但我的目标是向solr发送一个请求,以更新每个请求的索引。我看过django信号来与mysql同步索引。但它不能用于对solr索引进行一次更新。我应该考虑的其他选择是什么?最理想的方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-17 10:30:35

我能够通过为所有模型添加一个公共信号处理程序来实现上述目标。

代码语言:javascript
复制
@receiver(post_save, sender=Model1)
@receiver(post_save, sender=Model2)
@receiver(post_save, sender=Model3)
def handler(sender, instance, created, **kwargs):
    redis_connection.set(current_thread().name, instance.id)

然后在SolrUpdateMiddleware里

代码语言:javascript
复制
class SolrUpdateMiddleware(object):
    def process_response(self, request, response):
        id = redis_connection.get(current_thread().name)
        update_solr(id)
        redis_connection.delete(current_thread().name)
        return response

因此,对于特定的请求,只有一个更新将转到solr。现在我使用的是键值对。如果我想在一个请求中刷新多个文档,我可以使用一个集合。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35980088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档