我在延迟的文件中转储了一些Django查询,因此我将作为参数sql_with_params传递给稍后在延迟的raw查询中执行。
我已经将所有的查询迁移到了干草堆中,所以我不想对SearchQuerySet做同样的事情。
有什么方法可以得到已经构造的raw_query的SearchQuerySet吗?
PD:我在用ElasticSearch
发布于 2016-10-11 20:54:58
当然,不幸的是,这里有一种方法需要一些管道。您可以创建自定义搜索引擎,并将其查询设置为从ElasticsearchSearchQuery继承的自己的查询定义。
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并从您的设置中引用:
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'myapp.mymodule.ExtendedElasticsearchSearchEngine',
'URL': 'http://localhost:9200/',
'INDEX_NAME': 'haystack'
},
}https://stackoverflow.com/questions/39986317
复制相似问题