gpt4 book ai didi

python - 序列化Haystack SearchQuerySet

转载 作者:行者123 更新时间:2023-12-03 00:11:55 25 4
gpt4 key购买 nike

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

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

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

PD:我正在使用ElasticSearch

最佳答案

当然,不幸的是,这是一种需要一些管道的方法。您可以创建一个自定义搜索引擎,并将其查询设置为继承自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'
},
}

关于python - 序列化Haystack SearchQuerySet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39986317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com