簡體   English   中英

序列化Haystack SearchQuerySet

[英]Serialize Haystack SearchQuerySet

我在延遲的文件中轉儲了一些Django查詢,因此我將參數sql_with_params傳遞給以后在延遲的raw查詢中執行。

我已經將所有查詢遷移到了haystack,所以我不會對SearchQuerySet進行相同的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'
    },
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM