これで遊んでからしばらく経ちましたが、ts_queryではなく正しい言語でts_vectorを作成する必要があります。
したがって、テーブルを更新するときは、次を使用します。
UPDATE blog_entry SET body_tsv=to_tsvector('german', body);
また、機能を拡張し、ispell辞書を使用して、ステミングをテキスト検索エンジンに適したものにすることもできます(ただし、Solrなどほど高度ではありません)。
これを行うには、 OpenOfficeドイツ語辞書に含まれているISPELL辞書をダウンロードします。
.oxtファイルは実際には.zipファイルであるため、その内容を簡単に抽出できます。
次に、拡張子をに変更しながら、ファイルde_DE_frami.dic
をPostgreSQLの「share / tsearch_data」ディレクトリにコピーします.dict
(これは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