Django trigram_similar 搜索 returns 无结果(Django 2.1 与 Postgresql 10.5 后端)

Django trigram_similar search returns no result (Django 2.1 with Postgresql 10.5 backend)

我按照 https://docs.djangoproject.com/en/2.1/ref/contrib/postgres/lookups/#std:fieldlookup-trigram_similar 上的说明在我的搜索引擎上安装了三元组搜索。我在 settings.py 中的 INSTALLED_APPS 中添加了 'django.contrib.postgres',并在我的 PostgreSQL 数据库上安装了 pg_trgm 扩展。卦象搜索returns没有结果,但也没有错误,只是该搜索结果的地方一片空白。我的搜索引擎可以很好地处理 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 页面也returns 没有。但是,当我

cross_currents.objects.filter(Title__icontains='modern') 

出现了很多结果。知道为什么我的 trigram 搜索 returns 什么都没有吗?

问题是 Postgres 的默认相似度阈值设置为 0.3,这对于 return 在我的案例中的单词搜索结果来说太高了。我发现 0.01 的阈值对我的情况有效:

articles = articles.annotate(similarity=TrigramSimilarity('Title', search_term),).filter(similarity__gt=0.01).order_by('-similarity')