微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决寻找 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 举报,一经查实,本站将立刻删除。