--- title: "Volltextsuche in PostgreSQL" slug: "full-text-search-in-postgresql" tags: ["Developer", "Site Administrator", "Explainer", "How-to"] updated: 2023-04-11T10:55:10Z published: 2023-04-11T10:55:10Z canonical: "totara.help/full-text-search-in-postgresql" --- > ## Documentation Index > Fetch the complete documentation index at: https://totara.help/llms.txt > Use this file to discover all available pages before exploring further. # Volltextsuche in PostgreSQL [Die Volltextsuche](/17/docs/full-text-search) (FTS) ermöglicht einen ausgeklügelten Ansatz bei der Textsuche in Totara, insbesondere innerhalb des Katalogs. Details zur Einrichtung mit PostgresSQL finden Sie auf dieser Seite. Standardmäßig unterstützt die PostgreSQL-Datenbank die Volltextsuche in Phrasen, Wörtern und Teilsuchen vom Anfang des Wortes (z. B. „Edu*“ gibt Elemente zurück, die das Wort „Bildung“ enthalten). ## Sprache PostgreSQL verwendet standardmäßig die 'Englische' Konfiguration für die Volltextsuche (FTS). Eine Liste der verfügbaren Optionen finden Sie in den Ergebnissen von "SELECT cfgname FROM pg_ts_config;". Zum Beispiel: ```plsql $CFG->dboptions['ftslanguage'] = 'englisch'; $CFG->dboptions['ftslanguage'] = 'einfach'; $CFG->dboptions['ftslanguage'] = 'deutsch'; ``` PostgreSQL unterstützt keine japanischen und anderen Sprachen mit sehr kurzen Wörtern ohne Leerzeichen dazwischen. Aktivieren Sie die folgende Einstellung, um eine grundlegende experimentelle Unterstützung dieser Sprachen zu erhalten: ```plsql $CFG->dboptions['fts3bworkaround'] = wahr; ``` Füllen Sie nach jeder dieser Änderungen die FTS-Tabellen erneut aus, indem Sie Folgendes ausführen: ```plsql Php admin/cli/fts_repopulate_tables.php ``` ## Mindestlänge des Suchbegriffs PostgreSQL hat keine spezifischen Standardlängenanforderungen und kann alle Wörter finden, vorausgesetzt, es handelt sich um Wörter, die häufig in einem Wörterbuch gefunden werden. ## Stoppwörter Stoppwörter sind eine Reihe von Wörtern, die von Index- und Suchanfragen ausgeschlossen werden. Sie hängen von der Sprache ab, die bei der Indizierung und Suche verwendet wird, sowie von der Präsenz des Wörterbuchs für die Datenbankinstallation. Wenn ein Nutzer beispielsweise nach „Hotels in Wellington“ sucht, schließt das System „in“ aus der Suche aus. Weitere Details zu PostgreSQL-Stoppwörtern finden Sie in der [PostgreSQL-Hilfedokumentation](https://github.com/postgres/postgres/blob/master/src/backend/snowball/stopwords/). ## Morphologische Suche Es ist wichtig zu beachten, dass PostgreSQL keine erweiterten Sprachfunktionen unterstützt. Daher müssen Sie ein bestimmtes Hunspell-Wörterbuch für die Sprache installieren, die Sie verwenden möchten. Es gibt einige Möglichkeiten, um die Sprachen von herunterzuladen, z. B. [LibreOffice Extensions](https://extensions.libreoffice.org/extensions) und [Mozilla Addons](https://addons.mozilla.org/en-US/firefox/language-tools/). Unten finden Sie ein Beispiel für die Aktivierung der morphologischen Suche in PostgreSQL in Ubuntu 18.04 für die schwedische Sprache. Dies ist kein definitiver Leitfaden, sondern ein Beispiel dafür, wie dies in einem bestimmten Fall erfolgen kann. Weitere Informationen finden Sie in der PostgreSQL-Dokumentation. Wenn wir beispielsweise die schwedische Sprache verwenden, funktioniert Folgendes nicht sofort: ```plsql -- Dies wird {äppelträd} als Lexeme anstelle {äppelträd,äppel,träd} der erwarteten Auswahl * von ts_debug('pg_catalog.swedish', 'äppelträd') zurückgegeben; ``` Damit PostgreSQL die obigen Elemente richtig interpretieren kann, müssen Sie das schwedische Hunspell-Wörterbuch wie folgt installieren: 1. Gehen Sie zu [Mozilla Addons](https://addons.mozilla.org/en-US/firefox/language-tools/) und laden Sie das schwedische Wörterbuch herunter (klicken Sie mit der rechten Maustaste auf die Schaltfläche Zu Firefox hinzufügen und klicken Sie auf den Link **Speichern unter**). 2. Die heruntergeladene Datei extrahieren (manchmal hat die heruntergeladene Datei keine Erweiterung, also einfach .oxt hinzufügen) 3. Kopieren Sie die Dateien *.aff, *.dic in das **tsearch_data** Verzeichnis von PostgreSQL und benennen Sie sie in sv_se.affix und sv_se.dict um. 4. Bestätigen Sie, dass die Dateien UTF-8-codiert sind. Im Folgenden wird die aktuelle Codierung der Dateien ausgedruckt: ```plsql Datei -i sv_se.* Wenn die Dateien nicht UTF-8-codiert sind, können Sie die folgenden Befehle ausführen (ersetzen Sie einfach ISO-8859-1 durch die Codierungsausgabe von oben): iconv -f ISO-8859-1 -t UTF-8//TRANSLIT sv_se.affix -o sv_se.affix iconv -f ISO-8859-1 -t UTF-8//TRANSLIT sv_se.dict -o sv_se.dict ``` 1. Führen Sie die folgenden Befehle in PostgreSQL aus: ```plsql TEXTSUCH-DIKTIONAR ERSTELLEN sv_hunspell( Template = ispell, DictFile = sv_se, AffFile = sv_se, Stopwords = schwedisch ); TEXTSUCH-KONFIGURATION ERSTELLEN sv_hunspell(Parser = Standard); ALTER TEXTSUCH-KONFIGURATION sv_hunspell ALTER MAPPING FÜR Asciiword, Ascihword, hword_asciipart,word, hword, hword_part MIT sv_hunspell; ``` Oben wird das Wörterbuch installiert und Sie können es dann wie folgt verwenden: ```plsql -- Dadurch werden die erwarteten L{äppelträd,äppel,träd}exemes zurückgegeben: Wählen Sie * aus ts_debug('sv_hunspell', 'äppelträd'); ``` Join the [Totara Community](https://totara.community/) for more resources to help you get the most out of Totara. © Copyright 2025 Totara Learning Solutions. All rights reserved. Some content originally obtained via [GPLv3 license](https://www.gnu.org/licenses/licenses.html#GPL) and continues to be available under GPLv3. All other content is the sole copyright of Totara Learning Solutions.