Я также пытаюсь выполнить поиск SearchVecotor в поле тегов, он работал с двумя полями, либо он не ищет поля, либо вектор поиска не работает должным образом с тремя полями.
У меня есть поле тега, которое находится в базе данных из-за taggit, я использую postgresql
функцию просмотра, которая содержит инструкции поиска
def home_page_view(request):
posts = Post.published.all().order_by('-publish')[:5]
# Using the search bar
search_form = SearchForm()
query = None
results = []
if 'query' in request.GET:
search_form = SearchForm(request.GET)
if search_form.is_valid():
query = search_form.cleaned_data['query']
search_vector = SearchVector('title', 'body', 'tags')
search_query = SearchQuery(query)
results = Post.published.annotate(
search=search_vector,
search_rank=SearchRank(search_vector, search_query)
).filter(search=query).order_by('-search_rank')
return render(request, 'pages/page/search_results.html', {'query': query,
'search_form': search_form,
'results': results}
)
return render(request, 'pages/page/home.html', {'section': 'home',
'posts': posts,
'query': query,
'search_form': search_form,
'results': results
}
)