Sudah lama sejak saya memainkan ini, tetapi Anda harus membuat ts_vector dalam bahasa yang benar, bukan ts_query.
Jadi ketika Anda memperbarui tabel Anda, gunakan:
UPDATE blog_entry SET body_tsv=to_tsvector('german', body);
Anda juga dapat memperluas fungsionalitas dan menggunakan kamus ispell untuk membuat stemming lebih baik ke mesin pencari teks (walaupun masih tidak akan secanggih misalnya Solr)
Untuk melakukannya, unduh kamus ISPELL yaitu mis. terdapat dalam kamus bahasa Jerman OpenOffice
File .oxt sebenarnya adalah file .zip, jadi Anda cukup mengekstrak kontennya.
Kemudian salin file de_DE_frami.dic
ke direktori "share/tsearch_data" PostgreSQL sambil mengubah ekstensi menjadi .dict
(yang diharapkan PostgreSQL.
Kemudian copy file de_DE_frami.aff
ke direktori yang sama, ubah ekstensi menjadi .affix
.
Anda perlu mengonversi kedua file (teks) ke UTF-8 agar dapat bekerja dengan PostgreSQL
Kemudian daftarkan kamus tersebut menggunakan:
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;
Setelah selesai, Anda dapat membuat ts_vector menggunakan:
UPDATE blog_entry SET body_tsv=to_tsvector('de_config', body);
Ini juga dijelaskan dalam manual:http ://www.postgresql.org/docs/current/static/textsearch-dictionaries.html#TEXTSEARCH-ISPELL-DICTIONARY