Как настроить заголовок поиска в полнотекстовом поиске django?

#python #django #full-text-search #django-3.1

#python #django #полнотекстовый поиск #django-3.1

Вопрос:

Я хочу выделить поисковые запросы с помощью SearchHeadline. Мой код выглядит примерно так:

 query = SearchQuery('cat')
vector = SearchVector('caption')
Post.objects.annotate(
    search=vector
    headline=SearchHeadline(
        'caption',
        query
    )
).filter(search=query)
  

Этот код работает хорошо, и, например, заголовок первого результата:

 'My <b>cat</b> breed is Persian. Persian cats are the most beautiful breed.'
  

Как вы можете видеть cat , выделено, но cats нет, и я хочу выделить всю cat строку в заголовке, вот так:

 'My <b>cat</b> breed is Persian. Persian <b>cat</b>s are the most beautiful breed.'

  

Ответ №1:

вы можете использовать icontains для поиска определенного термина в словах и предложениях.

 query = SearchQuery('cat')
vector = SearchVector('caption')
Post.objects.annotate(
    search=vector
    headline=SearchHeadline(
        'caption',
        query
    )
).filter(search__icontains=query)