Wie pro Ihren Kommentar zu der vorherigen Antwort, Sie können Wörter zwischen der Verwendung von keine Stoppwörter und einfach wechseln alle stoppen. Sie können diese acheive mit einer benutzerdefinierten Suche Konfiguration:
(1) Sie können ohne Verwendung der Stoppwörter-Datei, zum Beispiel eines Benutzerwörterbuch erstellen:
CREATE TEXT SEARCH DICTIONARY english_stem_nostop (
Template = snowball
, Language = english
);
Hinweis, in der ich oben links aus dem StopWords
Parameter.
(2) Dann eine neue Konfiguration erstellen Sie Ihr neues Wörterbuch verwenden:
CREATE TEXT SEARCH CONFIGURATION public.english_nostop (COPY = pg_catalog.english);
ALTER TEXT SEARCH CONFIGURATION public.english_nostop
ALTER MAPPING FOR asciiword, asciihword, hword_asciipart, hword, hword_part, word WITH english_stem_nostop;
(3) Wenn dann die Config Sie verwenden möchten die Suche angeben (alternativ Sie jedes Mal default_text_search_config
Option ändern können), zB:
SELECT
title
FROM
articles
WHERE
to_tsvector('english_nostop', COALESCE(title,'') || ' ' || COALESCE(body,''))
@@ to_tsquery('english_nostop', 'how & to');
Sie können nur 'english'
in der obigen SQL geben Sie die normale Konfiguration verwendet werden.
Hinweis, in diesem Beispiel, dass die Standardkonfiguration verwendet, wird in Mitteilungen führen, weil es nur Worte stoppen ist.
Beachten Sie die folgenden, aber:
- Wenn Sie Indizes verwenden, werden Sie zwei müssen - eine für jede Konfiguration. (siehe diese Dokumente: tsearch tables und triggers).
- Überprüfen Sie, welche Parser-Token diese Zuordnung gemäß Schritt 2 oben verwenden möchten (siehe Parsers).
Danke, catchdave - das ist, was ich gesucht habe. – tomd