2015-09-14 1 views
1

Я использую django_haystack с Solr 4.9. Я внесла поправки в обработчик запросов /select, чтобы по умолчанию все запросы использовали утилизацию.Djayo haystack with Solr - как указать параметры GET?

Проблема в том, что иногда я хотел бы запрашивать определенные поля, но я не могу найти способ получить SearchQuerySet api, чтобы заставить его играть красиво с помощью smax. Поэтому в основном я хочу, чтобы отправить запрос следующее (или эквивалент) для Solr: q=hello&qf=content_auto

Я попытался следующие aproaches:

Стандартная Апи

SearchQuerySet().filter(content_auto='hello') 

# understandably results in the following being sent to solr: 
q=content_auto:hello 

AltParser
query = AltParser('dismax', 'hello', qf="content_auto") 
sqs = SearchQuerySet().filter(content=query) 

# Results in 
q=(_query_:"{!dismax+qf%3Dcontent_auto}hello") 

Raw

query = Raw('hello&qf=content_auto') 

# results in 
q=hello%26qf%3Dcontent_auto 

Последний подход был настолько близок, но поскольку он ускользнул от = и &, он, похоже, не обрабатывает запрос правильно.

Каков наилучший подход к решению этого вопроса? Мне не нужно запрашивать неустранимые запросы, поэтому было бы желательно, чтобы обработчик запросов /select был таким же, а не для того, чтобы обернуть каждый запрос в Raw или AltParser.

ответ

1

Короче говоря, ответ заключается в том, что это невозможно сделать без создания пользовательского бэкэнда и SearchQuerySet. В итоге мне пришлось просто вернуться к стандартной конфигурации и указав, что у вас есть AltParser, немного раздражающий, потому что это влияет на ваши предложения по написанию.

 Смежные вопросы

  • Нет связанных вопросов^_^