Kann die Selektion/Suche nach NUR Zeitkriterium ermöglicht werden?

Ich komme immer wieder mal zum Bedarf, die Nachrichten eines "letzten Zeitraumes" anzeigen lassen zu wollen, ohne daß ich irgendwas anderes selektieren wollen würde.

Leider scheint das Suchformular solches nicht annehmen zu wollen. Man muß dort immer mindestens drei Buchstaben für einen Inhalt vorgeben.

OK, man KANN sich halbwegs behelfen, indem man dort eine Buchstabengruppe reinsetzt, die in jedem anständigen deutschen Satz vorkommen sollte. Aber das Wahre ist diese Methode doch nicht, oder?

Läßt sich diese Einschränkung nicht wieder rausnehmen?
Wenigstens dann, wenn man ein gewisses Zeitfenster einhält, so daß der Datenbankserver ein hinreichend starkes Selektionskriterium behält. (Ich vermute, nur zu dessen Entlastung wurde diese Einschränkung überhaupt eingebaut, stimmt's?)
 
Original von Harry Boeck
(Ich vermute, nur zu dessen Entlastung wurde diese Einschränkung überhaupt eingebaut, stimmt's?)
Richtig. Stell dir vor irgendein Scherzkeks sucht beispielsweise nach "e" ohne die Suche einzugrenzen....

Es werden noch zur normalen Suche 2 weitere Suchmöglichkeiten angeboten.
(außerdem gibts noch Themen ohne Antwort)
 
Nunja, das eine (Suchwortmindestlänge) und das andere (Datenbankbelastung) hängen in diesem Fall ja nicht zusammen. Das WBB indiziert Beiträge und Themen und bildet einen Index über Worte, die eine bestimmte Mindestlänge haben (und nicht auf einer Sperrliste stehen, wo allgemeine Begriffe wie "der", "die", "das", "als" etc. rauf gehört). Dadurch wird beim Suchen nach einem Begriff keine umfangreiche und performancelastige Volltextsuche auf der Datenbank gestartet, sondern nur der Index bemüht, was das ganze einigermaßen flott macht.

Eine Suche nach einem Zeitraum hingegen ist nur eine Abfrage auf ein einzelnes, fest formatiertes Feld in der Datenbank (ein Timestamp als INT), in diesem Sinne also nicht sonderlich leistungsintensiv. Einziger Fresser könnte hier die Anzahl der Ergebnisse sein. Aber wenn ich mal nach "lol" suche, bekomme ich auch über 1500 Threads in nullkommanix angezeigt.
 
Das hätte trotzdem Auswirkungen auf die DB.
Wenn ich die max. Wortlänge auf 0 oder 1 stelle, indiziert das Board jedes Wort, auch einzeln stehende Zeichen wie Zahlen, Sonderzeichen in Code etc. Bei einem Testboard mit nur 50 kurzen Beiträgen kommt man so schon auf einen Index von über 1000 Datensätzen in der Wordlist Table und 1500 in der Wordmatch Table .... und das Habo hat derzeit 246k Beiträge ....
 
Es geht ja nicht darum, die Wortlänge zu reduzieren, dass der Index dann riesig wird und seine Daseinsberechtigung verliert, dürfte ja klar sein ;)

Es geht aber darum, dass die Eingabe eines Suchbegriffes optional ist, wenn stattdessen andere Kriterien die Suche hinreichend beschränken.
 
Genau! Und da würde ich mir folgendes wünschen (wenn ich darf):

1. Sofern KEIN Textkriterium angegeben ist, sollte einfach eine Auflistung (mit LIMIT) zugelassen werden. (Also die Ablehnung sollte geringfügig entschärft werden.)

2. Es wäre noch eine Stufe besser, wenn ein beliebiger Zeitraum gewählt werden dürfte (das belastet je den DB-Server nicht übermäßig, wenn ein vernünftiges LIMIT gesetzt ist), also ein Anfangs- und Endedatum. Das Endedatum sollte per default "jetzt" sein und das Anfangsdatum per default "vor 24 Stunden".

----

Ich sehe jetzt aber gerade, daß in der standardmäßig mitgelieferten "search.php" dieser Fall nicht vorgesehen ist. Dort kommt tatsächlich "searchdate" nur in Verbindung mit Textsuche vor.

Allerdings erfolgt dort nicht standardmäßig ein Rausschmiß, wenn man kein Suchwort gewählt hat - wenn ich das überblicksmäßig richtig verstehe.
 
Original von Harry Boeck
Das Endedatum sollte per default "jetzt" sein und das Anfangsdatum per default "vor 24 Stunden".
Genau das selbe macht doch schon http://www.hackerboard.de/search.php?action=24h ?(

Wozu muss man denn alle Beiträge auflisten, als Beispiel, von vor 3 Wochen? Ich verstehe den praktischen Nutzen davon nicht wirklich.

Allerdings erfolgt dort nicht standardmäßig ein Rausschmiß, wenn man kein Suchwort gewählt hat - wenn ich das überblicksmäßig richtig verstehe.
if (isset($_POST['send'])) {
...

if ((!isset($goodwords[$val]) && !$goodwords[$val]) && ((isset($badwords[$val]) && $badwords[$val] == 1) || wbb_strlen($val) < $minwordlength || wbb_strlen($val) > $maxwordlength)) {
$count_bad++;
continue;
}
...
if ($count_bad > 0 && $count_bad == $count_total) redirect($lang->get("LANG_SEARCH_ERROR_SEARCHBAD", ...
 
Original von Mackz
Genau das selbe macht doch schon http://www.hackerboard.de/search.php?action=24h ?(
Richtig, aber nur für genau diesen Zeitraum.

Wozu muss man denn alle Beiträge auflisten, als Beispiel, von vor 3 Wochen? Ich verstehe den praktischen Nutzen davon nicht wirklich.
Zum Beispiel, weil man ein paar Tage im Urlaub ist, zwischendurch sporadisch mal aufs Board schaut (womit die Suche nach "Beiträgen seit letztem Besuch" flach fällt), aber keine Zeit hat alle Themen zu beantworten. Wenn man dann aber wieder zuhause ist, würde man sich gern alle Themen anzeigen lassen, die in besagter Zeitspanne aktiv waren, um in aller Ruhe dort noch was schreiben zu können, wozu einem noch was eingefallen ist ;)

Sicherlich kein regelmäßig auftretender Standardfall, aber wenn man eine entsprechende Funktion bauen würde, würde sie auch genutzt werden.
 
Ich habe die Suche jetzt in folgender Hinsicht modifiziert:

- Suchwort-/Benutzernamen-Pflicht entfernt für "von Gestern" bis einschließlich "die letzten 6 Monate" wenn "und neuere" ausgewählt ist.
- Außerdem "letzte X Tage", "letzte 3 Wochen" und "letzte 2 Monate" zu der Datumsauswahl hinzugefügt.

Dadurch ist es jetzt möglich alle Threads innerhalb der vorgegebenen Zeiträume anzeigen zu lassen.
 
Hallo,
ansonsten kann man sich allgemein beim wBB (zumindest bei wbb 2.x) damit helfen, dass man als Benutzername '%' angibt, dann 'Teil eines Namens' auswählt und seine Zeit entsprechend unten eingrenzt.
Damit werden dann auch die Threads der z.B. letzten 2 Wochen angezeigt
 
Zurück
Oben