我已经pg_trgm安装了模块。
pg_trgm
pg_trgm | 1.0 | extensions | text similarity measurement and index ...
模式集为extensions。要使用它,我必须运行以下选择:
extensions
extensions.similarity('hello','hallo');
我正在尝试使用%运算符运行一条语句,并收到以下消息。
%
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。run:
search_path
SHOW search_path;
是否包含安装pg_trgm的架构?如果没有,请包括在内。
另外,您可以使用OPERATOR()结构对函数进行模式限定-甚至运算符:
OPERATOR()
SELECT * FROM rssdata WHERE extensions.similarity(description, 'Brazil') > .8; SELECT * FROM rssdata WHERE description OPERATOR(extensions.%) 'Brazil';
使它独立于search_path。