Сходство слова с триграммой

Как сделать функцию для сходства слов в результатах поиска. Например, если я пишу в форме поиска "ugo" или "hugo". я пробую так: ("contenue" - это моя колонка для txt файлов в базе данных postgresql) views.py

  class SearchResultsList(ListView):
    ...
    ...
    ...
          def get_queryset(self):
                query = self.request.GET.get("q")
                vector_column = SearchVector("contenue", weight="A", config='french')
        search_query = SearchQuery(query)
                search_headline = SearchHeadline("contenue", search_query)
                result1 = Q(contenue__search=query)
                result2 = Q(SearchVector("contenue"))
        return Actes.objects.filter(result1).annotate(headline=search_headline)
                                            .annotate(similarity=TrigramSimilarity('contenue', query),)
                                            .filter(similarity__gte=0.6).order_by('-similarity')

когда я не добавляю триграмму, у меня есть результат, но он не работает, если я пишу "ugo" вместо "hugo" или "higo" вместо "hugo". Спасибо и извините за мой плохой английский

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