首页 > 解决方案 > Django TrigramSimilarity 搜索没有提供这样的功能:SIMILARITY

问题描述

我正在尝试在我的 Django 项目中进行 TrigramSimilarity 搜索。
正如 django文档中所写,我已经完成了以下导入:from django.contrib.postgres.search import TrigramSimilarity;
我还在文件的'django.contrib.postgres'里面添加INSTALLED_APPSsettings.py

该错误不会立即出现:Django TrigramSimilarity search gives no such function: SIMILARITY一旦我对查询集执行某些操作,我就会收到此错误。例如,如果我想做一个简单的操作,比如 print(),就会出现错误。下面的代码是我所做的

articles = Article.objects.annotate(
    similarity=TrigramSimilarity('name', search_str),
).filter(similarity__gt=0.3).order_by('-similarity')
print(articles) #that line causes the error (no such function: SIMILARITY)

我从字面上搜索了所有内容,但似乎以前没有人遇到过这个错误。我已经完全按照文档所说的做了->这里
也许还有另一种方法来做 TrigramSimilarity,但正如我在阅读文档之前所说的那样。

标签: pythondjangopostgresql

解决方案


我解决了手动创建一个重现 Trigramman Similarity Search 的函数。


推荐阅读