1

これを引き起こすいくつかの 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 スタイルのグラフィックが埋め込まれています。それらが何であれ、インデックスが作成されていなくてもかまいません。これらの通知が発生しないようにしたいだけです。

4

1 に答える 1

3

すべての通知を抑制しても構わない場合は、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;

于 2012-10-17T01:03:05.547 に答える