私はPostgreSQLのフルテキスト検索を実装しようとしていますが、to_tsvectorで設定されたカラムが空であれば、空の。PostgreSQLでデータがないカラムがある場合はto_tsvectorは空です。フルテキスト検索
私は次のようなテーブルがある:
id | title | description |
1 | skis | my skis |
2 | bike | |
私は文書を作成しています:
SELECT title, description,
setweight(to_tsvector(title), 'A'::"char") ||
setweight(to_tsvector(description), 'C'::"char")
AS document
FROM inventory
を私は見ることが期待された結果だった:
title | description | document |
skis | my skis |'ski':1A,3C |
bike | | 'bike':1A |
実際に私が得たものは:
title | description | document |
skis | my skis |'ski':1A,3C |
bike | | |
これはバグのようです。任意の1文字または数字または何かを記述に追加すると、文書が正しく表示されるようになりますが、単一の列にnull値を指定すると文書全体が空になります。タイトルと説明を検索できるようにするために説明が必要なのはなぜですか?私は何かを誤解していますか?
私はCOALESCE関数を使用して、これを試み、それはまだ動作しませんでした。私は、COALESCEはJOINされた値に対して1対多の関係を持つ非null値を取得するためにのみ機能すると思います。それはnull以外の値を見つけることができない場合、それはまだ破る – knsheely
私はそれを考え出したと思う。私は空の文字列をCOALESCE関数に追加していませんでした。合体(string_agg(タグ、 '')、 '')。したがって、タグのNULL値のみが存在しても、NULLを返していました。空の文字列を追加すると問題が解決しました。 – knsheely