我按照https://docs.djangoproject.com/en/2.1/ref/contrib/postgres/lookups/#std:fieldlookup-trigram_similar上的说明在我的搜索引擎上安装三元组搜索。我在我的 in 中添加'django.contrib.postgres'
并INSTALLED_APPS
在我的PostgreSQL 数据库上settings.py
安装了pg_trgm
扩展。trigram 搜索没有返回结果,但没有错误,只是在应该有搜索结果的地方出现空白。我的搜索引擎在搜索中运行良好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 shell 给我的:
In [6]: cross_currents.objects.filter(Title__trigram_similar='modern')
Out[6]: <QuerySet []>
HTML 页面也不返回任何内容。但是,当我这样做时
cross_currents.objects.filter(Title__icontains='modern')
出现了很多结果。知道为什么我的三元组搜索什么都不返回吗?