Kann ich bei der Konfiguration von PostgreSQL programmgesteuert zu beseitigen Stopp-Wörter in Volltext-Suche?
Ich bin mit PostgreSQL Volltextsuche für ein Projekt, wo traditionelle stop-Wörter ('a', 'der', 'wenn' etc.) sollte indiziert und durchsuchbar, die nicht dem Standard-Verhalten. Zum Beispiel, vielleicht möchte ich meinen Benutzern finden Sie Ergebnisse für die Abfrage "zu sein oder nicht zu sein'.
Den Dokumentation zeigt an, dass ich das erreichen kann dies durch das erstellen einer leeren Stoppwörter Wörterbuch in $SHAREDIR/tsearch_data/english.stop
(zum Beispiel), aber dies wird die Bereitstellung verkomplizieren, ich will in der Lage sein, zu konfigurieren, PostgreSQL stop word Umgang mit SQL. Ist das möglich? Wenn ja, können Sie eine Beispiel-SQL-Anweisung?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie pro Ihren Kommentar auf der vorherigen Antwort, Sie können leicht schalten Sie zwischen der Verwendung keine Stoppwörter und alle stop-Wörter.
Können Sie erreichen dies mit einem custom-search-Konfiguration:
(1), können Sie erstellen ein benutzerdefiniertes Wörterbuch, ohne mit der stop-words-Datei, zum Beispiel:
Hinweis, in dem ich oben Links den
StopWords
parameter.(2) erstellen Sie Dann eine neue Konfiguration zu verwenden, das neue Wörterbuch:
(3) Dann, bei der Suche angeben, die config, die Sie verwenden möchten (alternativ können Sie ändern Sie die
default_text_search_config
option jedes mal), z.B.:Können Sie angeben, nur
'english'
im obigen SQL zu verwenden, die normale config.Hinweis, dass in diesem Beispiel unter Verwendung der standard-Konfiguration wird im Ergebnis dar, weil es sind halt nur Worte.
Beachten Sie das folgende, aber:
Nein, die stop-Wörter sind nur konfigurierbar über die Datei. Sie können eine server-side-Funktion-verändert die Datei, aber erfordert, dass die Datei zu schreiben:in der Lage, die von der postgres-service-Benutzer, die Sie wahrscheinlich nicht wollen.