2016-10-11 2 views
0

遅延されたファイルにダンゴクエリをダンプしましたので、後でrawというクエリで実行するためにパラメータsql_with_paramsとして渡します。Haystack SearchQuerySetをシリアライズ

私はすべてのクエリをhaystackに移行しましたので、SearchQuerySetと同じことをやりません。

すでに構築されているSearchQuerySetのraw_queryを取得する方法はありますか?

PD:私はElasticSearch

を使用しています

答えて

0

確かに、ここでは残念ながら配管のビットを必要とする一つの方法です。カスタム検索エンジンを作成し、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' 
    }, 
} 
関連する問題