Ein Bang leitet eine Suche an eine andere Website weiter, statt Fess zu durchsuchen. Er funktioniert wie die Bangs von DuckDuckGo: Fügen Sie der Suchanfrage ! und ein kurzes Auslösewort hinzu, und Fess sendet den Rest der Anfrage an die Website, für die das Auslösewort steht.
| Suchanfrage | Ziel |
|---|---|
airplane !g | Google, Suche nach airplane |
!w Ohm's law | Wikipedia, Suche nach Ohm's law |
!g | Startseite von Google |
airplane !unknown | Fess, als normale Suche (! bedeutet NOT, siehe NOT-Suche (Ausschlusssuche)) |
Bangs werden vom Plugin fess-webapp-bangs bereitgestellt, das Fess 15.9 oder neuer voraussetzt. Installieren Sie es über [System > Plugin] in der Administrationsoberfläche oder mit bin/fess-setup install plugin fess-webapp-bangs (siehe Plug-ins) und starten Sie Fess neu.
Wann ein Bang erkannt wird
Ein Bang besteht aus
!gefolgt von einem Auslösewort und wird als eigenständiges Wort geschrieben. Beim Auslösewort wird Groß- und Kleinschreibung nicht unterschieden.Der Bang wird aus der Suchanfrage entfernt, und der Rest der Anfrage wird an die URL des Bangs gesendet.
Enthält eine Suchanfrage mehrere definierte Bangs, zählt nur der erste.
Ein nicht definiertes Auslösewort ist kein Bang.
!unknownwird wie gewohnt gesucht und schließt das Wortunknownaus.-gundNOT gschließen weiterhin das Wortgaus. Nur!gist ein Bang.
Die Suchseite und /api/v2/search folgen der Weiterleitung: Die API liefert redirect_url (siehe Such-API), und das mit Fess gelieferte Theme bootstrap navigiert dorthin. Andere Themes benötigen die gleiche Behandlung.
Aufrufer, die nicht weiterleiten können, etwa der Chat, MCP, die JSON-APIs v1 und Classic sowie die Suche in der Administrationsoberfläche, senden die Suche nicht an eine andere Website. Sie entfernen den Bang und durchsuchen den Rest der Anfrage.
Bangs definieren
Bangs werden mit der Systemeigenschaft bangs.definitions definiert. Tragen Sie sie in app/WEB-INF/conf/system.properties ein oder übergeben Sie sie als -Dfess.system.bangs.definitions=.... Eine Änderung in system.properties wird ohne Neustart von Fess übernommen.
Der Wert ist eine durch Leerraum getrennte Liste von Einträgen der Form Auslösewort=URL. In der URL wird {query} durch den URL-kodierten Rest der Suchanfrage ersetzt:
Ein Auslösewort darf weder Leerraum noch
(,),!,",=oder:enthalten.Akzeptiert werden nur absolute URLs mit
httpoderhttps.Ein Eintrag, der diese Regeln nicht erfüllt, wird nicht verwendet. Im Fess-Protokoll wird eine Warnung ausgegeben, die übrigen Einträge bleiben in Kraft.
Wird dasselbe Auslösewort zweimal definiert, gilt die erste Definition.
Ein leerer Wert schaltet alle Bangs aus.
Ist bangs.definitions nicht gesetzt, stehen die folgenden fünf Bangs zur Verfügung:
| Auslösewort | Website |
|---|---|
g | |
b | Bing |
ddg | DuckDuckGo |
w | Wikipedia (Englisch) |
gh | GitHub |
Das Setzen von bangs.definitions ersetzt diese Liste. Um die Standard-Bangs zu behalten und einen weiteren hinzuzufügen, schreiben Sie alle benötigten Einträge auf.
Siehe auch
NOT-Suche (Ausschlusssuche) - NOT-Suche
Sonderzeichen - Sonderzeichen und Escape-Zeichen
Such-API - Such-API