Я использую 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
.