Stop Words bei Fulltext Suche

Bei meiner Tabelle mit Personen habe ich ein Feld “allnames”. Dort werden alle Namen aus Vor- und Nachname sortiert reingeschrieben. Gibt also:
“Christian,Kaufmann”
“Hans,Muster”
“Meier,Peter,Walter”

Auf dieser Spalte habe ich ein Index:

create index IX_ATHLETE_FTS on ATHLETE using gin(to_tsvector(''simple'',ALLNAMES))

und dann suche ich mit einem Query etwa so:

select * from ATHLETE where to_tsvector('simple',allnames) @@ to_tsquery('kaufm:* & chr:*')

Das funktioniert soweit gut ausser dass der Vorname “Will” scheinbar ein Stop Word ist. Ich habe die Dateien english.stop / german.stop gefunden wo dieses Wort in beiden drin ist. Es ist auch das einzige Wort das gleichzeitig ein Name ist.

Meine Frage: Wie kann ich das am einfachsten entfernen, so dass auch nach “Will” gesucht werden kann? Kann ich das auf einer einzelnen Datenbank? Oder ist einfacher gleich in der Server Konfiguration?

Christian

Achtung, selber noch nie probiert!

https://www.postgresql.org/docs/current/textsearch-dictionaries.html

Kopiere die Stopword-Liste, editiere diese, erstelle ein neues Dictionary, nutze es.