Ищем параметр запроса drf haystack для нажатия solr с параметром q
Я пытаюсь использовать drf-haystack для создания API для запроса solr.
Вот классы, которые я использую
from api.serializers import MyModelSerializer
class MyModelSearchView(HaystackViewSet):
index_models = [MyModel]
serializer_class = MyModelSerializer
document_uid_field = "key"
class MyModel(models.Model):
key = models.TextField(primary_key=True)
title = models.TextField(blank=True, null=True)
city = models.TextField(blank=True, null=True)
category = models.TextField(blank=True, null=True)
subcategory = models.TextField(blank=True, null=True)
class MyModelIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
title = indexes.CharField(model_attr="title")
city = indexes.CharField(model_attr="city")
key = indexes.CharField(model_attr="key")
def get_model(self):
return MyModel
def index_queryset(self, using=None):
return self.get_model().objects.all()
from api.search_indexes import MyModelIndex
class MyModelSerializer(HaystackSerializer):
class Meta:
fields = [
“title”, “city”, "pk"
]
все, что мне нужно, это иметь возможность запрашивать вот так:
Запрос http://127.0.0.1:8000/api/mymodel/search/?q=physician&city=portland . так что это попадает в solr с paramsq = doctor fq = city:portland.
Ожидаемый ответ Ответ для q = врач fq = город: портленд.
Полученный ответ: результаты для fq = city:portland.
Примечание Обратите внимание, что я не хочу запрашивать
text
field, если ответы из этого поля будут игнорировать уравнение ранжирования в solr.
Что я упускаю или делаю не так?
-Спасибо