首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >序列化栈SearchQuerySet

序列化栈SearchQuerySet
EN

Stack Overflow用户
提问于 2016-10-11 20:37:53
回答 1查看 176关注 0票数 1

我在延迟的文件中转储了一些Django查询,因此我将作为参数sql_with_params传递给稍后在延迟的raw查询中执行。

我已经将所有的查询迁移到了干草堆中,所以我不想对SearchQuerySet做同样的事情。

有什么方法可以得到已经构造的raw_query的SearchQuerySet吗?

PD:我在用ElasticSearch

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-11 20:54:58

当然,不幸的是,这里有一种方法需要一些管道。您可以创建自定义搜索引擎,并将其查询设置为从ElasticsearchSearchQuery继承的自己的查询定义。

代码语言:javascript
复制
from haystack.backends.elasticsearch_backend import ElasticsearchSearchEngine, ElasticsearchSearchQuery


class ExtendedElasticsearchSearchQuery(ElasticsearchSearchQuery):
    def build_query(self):
        raw_query = super(ExtendedElasticsearchSearchQuery, self).build_query()
        # TODO: Do something with raw query
        return raw_query

class ExtendedElasticsearchSearchEngine(ElasticsearchSearchEngine):
    query = ExtendedElasticsearchSearchQuery

并从您的设置中引用:

代码语言:javascript
复制
HAYSTACK_CONNECTIONS = {
    'default': {
        'ENGINE': 'myapp.mymodule.ExtendedElasticsearchSearchEngine',
        'URL': 'http://localhost:9200/',
        'INDEX_NAME': 'haystack'
    },
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39986317

复制
相关文章

相似问题

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