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