Если у меня есть простая модель, такая как:
class Book(models.Model):
title = models.TextField()
year = models.IntegerField()
Как я могу использовать SearchVector
в postgres для поиска по полям заголовка и года?Например, «Некоторая Книга 2018» будет запрашивать поля заголовка и года.
Если я попытаюсь сделать это следующим образом:
q = SearchQuery('Some') & SearchQuery('Book') & SearchQuery('2018')
vector = SearchVector('title') + SearchVector('year')
Book.objects.annotate(search=vector).filter(search=q)
Тогда я нажму ошибку
DataError: invalid input syntax for integer: ""
LINE 1: ...|| to_tsvector(COALESCE("book_book"."year", '') || ' '...
Можно ли в любом случае искать поле Integer?