Как ранжировать результаты запроса при использовании Q-объектов в Django
Я создаю базу данных вакансий, используя Django. Пользователь должен иметь возможность искать вакансии, используя их название, компанию и т.д. В настоящее время я использую Q Objects для построения запроса:
if keyword:
q=Q()
qs = stemming(keyword)
for key in qs:
q &= Q(title__iregex = r'\b{}.*\b'.format(key))|Q(company__iregex=r'\b{}.*\b'.format(key))
jobs_list = jobs_list.filter(q).distinct()
jobs_count = jobs_list.count()
jobs_list = jobs_list.order_by('-title')
Я хотел бы упорядочить результаты по релевантности.
Насколько я понимаю, обычно это достигается с помощью функции annotate(): Устанавливается номер ранжирования, который затем используется функцией order_by(). Однако я не уверен, как это сделать при использовании Q-объектов. Можно ли "аннотировать" Q-объекты? Или я лаю не на то дерево?
Возможно, кто-то может помочь, спасибо.