【发布时间】:2020-02-01 05:38:45
【问题描述】:
我有一个简单的论坛应用程序:
# models
class Topic(models.Model):
title = models.CharField(max_length=255)
class Message(models.Model):
text = models.TextField()
topic = models.ForeignKey(Topic, related_name='messages')
# views
class SearchView(ListView):
...
def get_queryset(self):
search_vector = SearchVector('messages__text')
search_query = SearchQuery(self.request.GET.get('query'))
topics = Topic.objects.annotate(
rank=SearchRank(search_vector, search_query)
).filter(rank__gte=0.0).order_by('-rank')
return topics
我想在我的论坛中进行全文搜索。 一切正常,但在主题查询结果中我得到了重复的对象。
<QuerySet [<Topic: 1>, <Topic 1>, <Topic 2>, <Topic 1>, ...]>
我认为这是因为一个主题中的多条消息给了我不同的排名值。
如何删除重复的主题但保持排名顺序?
【问题讨论】:
标签: python django full-text-search