Paperless-NGX / Whoosh Sheet Cheat
Nachdem in nun mehr als 3000 Dokumente auf mein Paperless-NGX migriert habe, kommen die ersten Erkenntnisse im Suchalgorithmus. Diese habe ich mal zusammengefasst und hier als PDF zum Downloaden bereitgestellt:
Normalerweise nutze ich die erweiterte Suche in den Dokumenten, da sich damit sehr präzise steuern läßt, was ich als Ergebnis erhalte.
Suchfelder
Beim Studieren der Paperless-NGX oder Python Whoosh Anleitung habe ich mir folgende Suchfelder notiert, mit welchen ich am meisten zu meinen Ergebnissen komme.
Feld | Beispiel Suchbegriff |
---|---|
Titel | (title:*konzept*) |
Dokumenttyp | (type:satzung) |
Tags | (tag:ipv6) |
Korrespondent | (correspondent:“RIPE NCC“) |
Ausgestellt am | (created:[2021 to 2022]) (created:[last tuesday to today]) |
Hinzugefügt am | (added:[-2year to now]) (added:[-1month to now]) |
Inhalt | (content:adressplan) (content:Rechnung) |
Datumsfelder
Bei den Datumsfelder merkt man ganz klar, dass hier keine Programmierer mit einem Metrischen-System im Kopf tippen. 😉 Es führt in weiten Teilen für Zeiträume kein Weg an der Nutzung des Imperialen-Systems vorbei… seufz. Allerdings sind auch genügend metrische Optionen vorhanden, so dass man sich nicht den Hals bricht.
Zeitraum / Datum | Beispiel Suchbegriff |
---|---|
genau 12.09.2005 | 20050912 |
genau 12.09.2005 | 2005 sept 12th |
genau 23.06.1978 | june 23 1978 |
im Monat Juli 1985 | july 1985 |
an einem 12 September | sep 12 |
Heute | today |
Gestern | yesterday |
Morgen | tomorrow |
Jetzt | now |
nächsten Freitag | next friday |
letzten Dienstag | last tuesday |
um 5:00 Uhr | 5am |
um 10:25:54 Uhr | 10:25:54 |
um 23:12 Uhr | 23:12 |
um 20:00 Uhr | 8 PM |
um 4:46 Uhr am 31.10.2010 | 4:46 am oct 31 2010 |
zwischen letzten Dienstag und Heute | last tuesday to today |
zwischen Heute und nächstem Freitag | today to next friday |
zwischen Januar 2005 und Februar 2008 | jan 2005 to feb 2008 |
vor einer Woche und Heute | -1 week to now |
zwischen jetzt und in 2 Stunden | now to +2h |
vor einem Jahre und 6 Monaten und in zwei Jahren und 23 Tagen | -1y6mo to +2 yrs 23d |
Boolesche Operatoren
Hier spielt Paperless-NGX mit Whoosh seine starke Seite aus, auch wenn das bei komplexen und verketteten Suchanfragen schon einmal dazu führt, dass Paperless-NGX gerne 30 Sekunden oder länger braucht.
Boolescher Operator | Erläuterung | Beispiel Suchbegriff |
---|---|---|
AND | beide Suchbegriffe müssen vorkommen | (content:IPv6) AND (content:IPv4) |
OR | einer der beiden Suchbegriffe müssen vorkommen | (content:Rechnung) OR (content:Abrechnung) |
ANDMAYBE | Suchbegriff1 muss enthalten sein und möglicherweise Suchbegriff2 | (content:Central) ANDMAYBE (content:Leistungsabrechnung) |
NOT | Suchbgeriff1 soll enthalten sein, nicht jedoch Suchbegriff2 | (content:IPv6) NOT (content:RIPE) |
ANDNOT | Suchbgeriff1 soll enthalten sein und nicht Suchbegriff2 | (content:IPv6) ANDNOT (title:konzept) |
Platzhalter/Fuzzy
Auch eine unscharfe Suche oder Suchfelder mit Platzhaltern funktioniert ganz gut, allerdings wirkt sich ein zu unscharfer Begriff (fuzzy search) natürlich beträchtlich auf die Dauer des Suchlaufs aus(!!!). Aber gerade wenn die Erinnerung nur ein „das wurde doch so oder so ähnlich geschrieben“ ergibt, ist es das Mittel der Wahl.
Platzhalter/Fuzzy | Erläuterung | Beispiel Suchbegriff |
---|---|---|
~ | Suchbegriff unscharf fassen mittels ~ | (content:adresse~) |
? | Platzhalterausdruck mit ? für ein einzelnes Zeichen | (content:te?t) |
* | Platzhalterausdruck mit * für eine beliebige Anzahl von Zeichen | (content:test*) |
Verstärker/Abdämpfer
Diese Funktion hat zwar keinen Einfluss auf die Menge der Suchergebnisse, jedoch auf die Reihenfolge, in welcher die Ergebnisse aufgelistet werden. Gerade bei einer hohen Anzahl von Treffern ist diese Verstärkung/Abdämpfung sehr nützlich.
Verstärker/Abdämpfer | Erläuterung | Beispiel Suchbegriff |
---|---|---|
^2 | doppelt so wichtig | (content:ninja^2) |
^1 | normale/einfache Gewichtung (default) | (content:cowboy) |
^0.5 | halb so wichtig | (content:bär^0.5) |
Komplexe Suchen
Wenn bei der Suche nach einem Dokument der gewählte Suchbegriff nicht zu einem klaren Ergebnis oder halt zu einer zu großen Anzahl von Ergebnissen führt, so lassen sich die vorher genannten Suchbegriffe gerne beliebig kombinieren. Doch Vorsicht, eine zu große Anzahl vom Platzhaltern oder Fuzzysuchen konsumieren gut gerne schon einmal Minuten, bevor dann eine mehr oder minder kurze Liste von Ergebnissen heraus purzelt. 😉
Komplexe Suche | Beispiel Suchbegriff |
---|---|
Im Inhalt soll „Rechnung“ vorkommen und das soll vor einem Monat bis Heute hinzugefügt worden sein | (content:Rechnung) AND (added:[-1month to now]) |
Im Inhalt soll „DNS“ vorkommen und der Korrespondent ist „RIPE NCC“ und es soll vor 6 Monaten bis jetzt hinzugefügt worden sein | (content:DNS) AND (correspondent:“RIPE NCC“) AND (added:[-6month to now]) |
Im Inhalt soll „IPv6“ vorkommen und der Korespondent ist „RIPE NCC“ und es soll vor 3 Monaten bis jetzt hinzugefügt worden sein | (content:IPv6) AND (correspondent:“RIPE NCC“) AND (created:[-3month to now]) |
Im Inhalt soll „Zone“ vorkommen und es soll im Jahr 2021 bis jetzt erzeugt worden sein und hinzugefügt worden sein der Korrespondent ist „RIPE NCC“ | (content:Zone) AND (created:[2021 to now]) AND (correspondent:“RIPE NCC“) |
Hallo, danoe für Sharen, Du entwickelst Du zu meinem Guru.
High Five
🙂
Viele Grüße
Michael
Danke für das Lob, ich gebe mir Mühe. VG, Eric