これで遊んでからしばらく経ちましたが、ts_queryではなく正しい言語でts_vectorを作成する必要があります。
したがって、テーブルを更新するときは、次を使用します。
UPDATE blog_entry SET body_tsv=to_tsvector('german', body);
機能を拡張し、ispell辞書を使用して、テキスト検索エンジンのステミングを改善することもできます(ただし、Solrなどほど高度ではありません)
これを行うには、次のようなISPELL辞書をダウンロードします。 OpenOfficeドイツ語辞書 に含まれています
.oxtファイルは実際には.zipファイルであるため、その内容を簡単に抽出できます。
次に、ファイルde_DE_frami.dic
をコピーします 拡張子を.dict
に変更しながら、PostgreSQLの「share/tsearch_data」ディレクトリに移動します (これはPostgreSQLが期待するものです。
次に、ファイルde_DE_frami.aff
をコピーします 同じディレクトリに、拡張子を.affix
に変更します 。
PostgreSQLで動作させるには、両方の(テキスト)ファイルをUTF-8に変換する必要があります
次に、次を使用してその辞書を登録します。
CREATE TEXT SEARCH CONFIGURATION de_config (copy=german);
CREATE TEXT SEARCH DICTIONARY german_stem (
TEMPLATE = snowball,
Language = german
);
CREATE TEXT SEARCH DICTIONARY german_ispell (
TEMPLATE = ispell,
dictfile = de_DE_frami,
afffile = de_de_frami
);
alter text search configuration de_config
alter mapping for asciiword WITH german_ispell, german_stem;
それが完了したら、次を使用してts_vectorを作成できます。
UPDATE blog_entry SET body_tsv=to_tsvector('de_config', body);
これは、マニュアルにも記載されています: http ://www.postgresql.org/docs/current/static/textsearch-dictionaries.html#TEXTSEARCH-ISPELL-DICTIONARY