我有我的 pg_trgm
已安装模块。
pg_trgm | 1.0 | extensions | text similarity measurement and index ...
模式集是extensions
.要使用它,我必须运行这样的选择:
extensions.similarity('hello','hallo');
我正在尝试使用 %
运行语句运算符(operator)并收到以下消息。
mydb=# select * from rssdata where description % 'Brazil';
ERROR: operator does not exist: character varying % unknown
LINE 1: select * from rssdata where description % 'Brazil';
^
HINT: No operator matches the given name and argument type(s).
You might need to add explicit type casts.
运行 %
需要什么或 <->
运营商?
最佳答案
问题很可能出在 search_path
上环境。运行:
SHOW search_path;
是您安装的架构 pg_trgm
包括?如果没有,请包含它。
或者,如果您有必要的权限,您可以 change the schema of an extension与:
ALTER EXTENSION pg_trgm SET SCHEMA public; -- or the schema you want
或者,您可以使用模式限定函数 - 甚至运算符使用 OPERATOR()
construct :
SELECT * FROM rssdata WHERE extensions.similarity(description, 'Brazil') > .8;
SELECT * FROM rssdata WHERE description OPERATOR(extensions.%) 'Brazil';
移除对 search_path
的依赖。但这很乏味。
关于sql - 如何使用扩展 pg_trgm 中的 % 运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22975599/