4

我已经pg_trgm安装了我的模块。

pg_trgm | 1.0     | extensions | text similarity measurement and index ...

架构集是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. 

运行%<->操作员需要什么?

4

1 回答 1

9

这很可能是search_path. 跑:

SHOW search_path;

您安装pg_trgm的架构是否包括在内?如果没有,包括它。

或者,您可以模式限定函数 - 甚至使用OPERATOR()构造的运算符:

SELECT * FROM rssdata WHERE extensions.similarity(description, 'Brazil') > .8;
SELECT * FROM rssdata WHERE description OPERATOR(extensions.%) 'Brazil';

使其独立于search_path.

于 2014-04-09T23:09:52.740 回答