Я следовал инструкции на https://docs.djangoproject.com/en/2.1/ref/contrib/postgres/lookups/#std:fieldlookup-trigram_similar, чтобы установить поиск триграмм в моей поисковой системе.Я добавил 'django.contrib.postgres'
в свой INSTALLED_APPS
в settings.py
и установил расширение pg_trgm
в своей базе данных PostgreSQL.Поиск по триграмме не дает результата, но нет ошибки, только пустота там, где должны быть результаты поиска.Моя поисковая система работала нормально с icontain
поисками.Вот код моей поисковой системы с trigram_similar
:
def query_search(request):
articles = cross_currents.objects.all()
search_term = ''
if 'keyword' in request.GET:
search_term = request.GET['keyword']
articles = articles.filter(Title__trigram_similar=search_term)
Title
- это CharField
в моей модели cross_currents
:
class cross_currents(models.Model):
Title = models.CharField(max_length=500)
Это то, что мойОболочка Django дала мне:
In [6]: cross_currents.objects.filter(Title__trigram_similar='modern')
Out[6]: <QuerySet []>
HTML-страница также ничего не возвращает.Однако, когда я делаю
cross_currents.objects.filter(Title__icontains='modern')
, появляется много результатов.Есть идеи, почему мой поиск триграмм ничего не дает?