Ищем параметр запроса 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.

Что я упускаю или делаю не так?

-Спасибо

0 ответов

Другие вопросы по тегам