【发布时间】:2019-03-23 20:04:16
【问题描述】:
我正在尝试使用TrigramSimilarity 进行全文搜索。我已经在 PostgreSQL 中激活了pg_trgm 扩展。并在我安装的应用程序中添加了django.contrib.postgres。但是当我尝试查询时
blog.objects.annotate(similarity=TrigramSimilarity('name', 'abc'),).filter(similarity__gt=0.3).order_by('-similarity')
但它给了我一个错误
psycopg2.ProgrammingError:函数相似性(字符不同,未知)不存在 第 1 行:...others_2"、"blog_mod"、相似度... ^ 提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。
为什么会发生此错误。请帮帮我。
【问题讨论】:
-
blog模型类是否有name字段? -
是的,它有名称字段
-
然后好像数据库中没有安装pg_trgm扩展。你做了什么来启用它?你检查它是否安装成功了?
-
我使用“sudo -u postgres psql”进入我的数据库并使用了这个命令“CREATE EXTENSION pg_trgm;”
-
错误信息与
pg_trgm未创建一致。 stackoverflow.com/questions/2254999/…
标签: python django python-3.x postgresql