Django TrigramSimilarity search没有提供这样的功能:



我正试图在我的Django项目中做一个TrigramSimilarity搜索。
在django文档中,我做了如下的导入:from django.contrib.postgres.search import TrigramSimilarity;
我还在settings.py文件的INSTALLED_APPS中添加了'django.contrib.postgres'

错误不会立即出现:我收到这个错误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,但正如我在阅读文档之前所说的。

您应该添加pg_trgm扩展到您的postgres。之后postgres就能理解TrigramSimilarity了

我解决了手动创建一个函数来复制Trigraman Similarity Search。

最新更新