我有一些导致这种情况发生的SQL语句:
NOTICE: word is too long to be indexed
DETAIL: Words longer than 2047 characters are ignored.
最简单的方法是什么,首先不生成这些通知?(说来话长,我为什么要那样做。)
这种说法的一个例子是:
update rev set html = regexp_replace(html,
'***=<a href="' || old.url || '">',
'<a href="' || new.url || '">',
'gi')
where id in (
select id
from rev
where to_tsvector('tags_only', html) @@
plainto_tsquery('tags_only','<a href="' || old.url || '">')
)
不是长url的A标记或任何导致问题的东西。它可能嵌入了CDATA风格的图形。我不在乎它们没有索引,不管它们是什么。我只希望这些通知不会发生。
最佳答案
如果不介意隐藏所有通知,只需更改PostgreSQL错误报告级别。client_min_messages
定义发送到客户端的最低级别的错误/警告/通知消息,log_min_messages
对保存在日志中的消息执行相同的操作。可能值为:DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, INFO, NOTICE, WARNING, ERROR, LOG, FATAL, PANIC
编辑:
仅对此查询禁用:SET LOCAL client_min_messages TO WARNING;
仅对此会话禁用:SET SESSION client_min_messages TO WARNING;
对此用户禁用:ALTER ROLE username SET client_min_messages TO WARNING;
关于postgresql - 使PostgreSQL中的“单词太长而无法索引”通知静音的最简单方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12925623/