问题描述
我正在尝试使用 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 (将#修改为@)