Расширенный поиск в фреймворке django rest

У меня есть база данных, содержащая множество постов с несколькими полями (название, содержание, теги). Я хочу создать поисковую систему для поиска постов. Сначала казалось, что это очень просто, но оказалось, что это не так. Например, когда я набираю 'how to', я хочу, чтобы система показывала посты, содержащие хотя бы одно из слов ('how' или 'to' или 'how to' - лучший сценарий), но проблема в том, что когда я набираю 'how to', моя система ищет только посты, содержащие 'how to', а не 'how' или 'to'. Пожалуйста, помогите мне создать систему.

class PostsSearch(APIView):
    def get(self, request, format=None):
        search = request.GET.get('search')
        query = SearchQuery(search)
        vector = SearchVector('title') + SearchVector('tags__name')
        posts = Post.objects.prefetch_related('tags').annotate(rank=SearchRank(vector, query)).filter(rank__gte=0.0001).order_by('-rank')
        serializer = PostsSerializer(posts, many=True)
        return Response(serializer.data)

Я попробовал код, который я предоставил выше, но он не работает вообще

Для сценария, упомянутого в "how to", вы можете просто reduce перевести поиск в список слов, например:

from functools import reduce
import operator
from django.db.models import Q

q = "how to"
results = Post.objects.filter(reduce(operator.or_, (Q(content__icontains=k) for k in q.strip().split())))
Вернуться на верх