Het is een tijdje geleden dat ik hiermee heb gespeeld, maar je moet de ts_vector in de juiste taal maken, niet de ts_query.
Dus wanneer u uw tabel bijwerkt, gebruikt u:
UPDATE blog_entry SET body_tsv=to_tsvector('german', body);
U kunt de functionaliteit ook uitbreiden en een Ispell-woordenboek gebruiken om stammen beter te maken voor de tekstzoekmachine (hoewel het nog steeds niet zo geavanceerd zal zijn als bijvoorbeeld Solr)
Download hiervoor het ISPELL-woordenboek dat b.v. opgenomen in het OpenOffice Duits woordenboek
Het .oxt-bestand is eigenlijk een .zip-bestand, dus u kunt de inhoud eenvoudig uitpakken.
Kopieer vervolgens het bestand de_DE_frami.dic
naar de PostgreSQL-map "share/tsearch_data" terwijl u de extensie wijzigt in .dict
(wat PostgreSQL verwacht.
Kopieer vervolgens het bestand de_DE_frami.aff
naar dezelfde map, waarbij de extensie wordt gewijzigd in .affix
.
U moet beide (tekst)bestanden naar UTF-8 converteren om met PostgreSQL te kunnen werken
Registreer dat woordenboek dan met:
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;
Zodra dat is gebeurd, kunt u uw ts_vector maken met:
UPDATE blog_entry SET body_tsv=to_tsvector('de_config', body);
Dit wordt ook beschreven in de handleiding:http ://www.postgresql.org/docs/current/static/textsearch-dictionaries.html#TEXTSEARCH-ISPELL-DICTIONARY