Как ранжировать результаты запроса при использовании 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-объекты? Или я лаю не на то дерево?

Возможно, кто-то может помочь, спасибо.

Вернуться на верх