我试图使用Postgres中的相似性函数来进行模糊文本匹配,但是每当我try 使用它时,我就会得到错误:

function similarity(character varying, unknown) does not exist

如果在文本中添加显式强制转换,则会出现以下错误:

function similarity(text, text) does not exist

我的问题是:

SELECT (similarity("table"."field"::text, %s::text)) AS "similarity", "table".* FROM "table" WHERE similarity > .5 ORDER BY "similarity" DESC LIMIT 10

我需要做些什么来启动pg_trgm吗?

推荐答案

你必须安装pg_trgm.在debian中,源代码为sql:/usr/share/postgresql/8.4/contrib/pg_trgm.sql.从命令行:

psql -f /usr/share/postgresql/8.4/contrib/pg_trgm.sql

或者在psqlshell 中:

\i /usr/share/postgresql/8.4/contrib/pg_trgm.sql

该脚本默认安装在公共模式中,如果要在其他地方安装,请编辑顶部的搜索路径(这样,只需删除模式即可完成卸载/升级).

Postgresql相关问答推荐

Postgresql函数返回值别名

如何获取实例化视图的列级权限?

如何高效地将行聚合到数组中,同时保留`NULL`来指示丢失的数据?

在PostgreSQL中是否有与SQLite R*Tree类似功能?

我可以将jsonb_set与来自SELECT语句的新值(第三个参数)一起使用吗?

即使存在 GIN 索引,整理默认的类似查询也无法执行

PG 16 的 AGE 安装抛出错误:无法创建 src/backend/parser/ag_scanner.c

AGE Graph 实际上存储为 postgreSQL 表,对吧?如何检索该表(不是图表)?

使用 select 在带有特殊字符的字符串中查找数据

在 PostgreSQL 中 Select 数字命名列会返回 ?column?

PostgreSQL:在timestamp::DATE 上创建索引

PostgreSQL比较两个jsonb对象

Rails 3:在 Postgres 支持的 ActiveRecord 中使用 json 作为列类型时出现迁移错误

如何引用使用 ON CONFLICT 中的函数的唯一索引?

postgresql 分组和内部连接

当成功有时会导致退出代码为 1 时,如何可靠地确定 pg_restore 是否成功?

如何启动 Postgres 服务器?

全文的 Postgresql 前缀通配符

如何从 PostgreSQL 中的 Json 数组中获取元素

PostgreSQL 9 在 Windows 上安装:Unable to write inside TEMP environment path.