#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)