Я следовал инструкциям на 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')
появляется много результатов. Есть идеи, почему мой поиск по триграмме ничего не возвращает?