寻找 drf haystack 查询参数以使用 q 参数命中 solr

问题描述

我正在尝试使用 drf-haystack 制作用于查询 solr 的 API。

这是我正在使用的课程

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 q = 医生 fq = 城市:波特兰。

预期响应 q = 医生的反应 fq = 城市:波特兰。

收到的回复 fq=city:portland 的结果。

注意 请注意,如果来自 text 字段的响应将忽略 solr 中的排名方程,我不想查询该字段。

我遗漏了什么或做错了什么?

-谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)