[Volltextsuche] Suchen nach Stadt - probleme mit '-'

Wieso liefert
plainto_tsquery(‘pg_catalog.german’,‘Frankfurt-am-Main’)

‘frankfurt-am-main’ & ‘frankfurt’ & ‘main’

ich möchte gerne ‘frankfurt’ & ‘main’ bekommen, damit FTS richtig funktionierte

plainto_tsquery(‘pg_catalog.german’,‘Frankfurt am Main’)
plainto_tsquery(‘pg_catalog.german’,‘Frankfurt an dem Main’) :-))

das funktioniert richtig.

Ich vermute mal, dass “Frankfurt-am-Main” in keinem Woerterbuch auftaucht und deswegen zusaetzlich noch als eigenes Wort raus kommt. Da “frankfurt” und “main” aber zusaetzlich auch raus kommen, sollte das doch keine Auswirkungen auf die Volltextsuche haben.

edit: habs gerade gemerkt, geht doch nicht. Ich suche mal mit, woran das liegt.

edit2: Also mit einem rewrite habe ich es hinbekommen

select ts_rewrite(to_tsquery('frankfurt-am-main'), to_tsquery('Frankfurt-am-Main'), to_tsquery('Frankfurt & Main'));

Wenn das Problem noch an anderen Stellen auftritt, dann koenntest du das mit einer alias-Tabelle abfangen. Eine Anleitung, wie das geht gibt es im Handbuch http://www.postgresql.org/docs/8.4/static/textsearch-features.html#TEXTSEARCH-MANIPULATE-TSQUERY