Forumsuche -> Verbesserungsvorschläge


  • Administrator

    Ich weiss nicht, wie aufwändig das wäre, aber ich hätte ein paar Ideen für die Verbesserung der Forumsuche:

    • Ausschliessen von Code aus der Suche. Jeglicher Code in entsprechenden Tags wird nicht in die Suche mit eingeschlossen. Das wäre insofern praktisch, wenn man nach gewissen Keywords sucht, aber nicht jeden Treffer bekommen möchte, wo das in einem Code hingeschrieben wurde. Zum Beispiel template + typedef, kommt sicher fast in jeglichem Code vor, der gezeigt wird, aber in einem Nachrichtentext wohl eher selten, bzw. wenn es diesbezüglich eben eine Frage hat.
    • Nur den Title durchsuchen. Auch hier hat es einen ähnlichen Grund wie oben. Im Titel sollten ja oft die Schlagwörter des Problems erwähnt sein. Wenn man zu viele Ergebnisse hat bei einer Suche, wäre es womöglich noch praktisch mit den gleichen Stichwörtern nur in den Titeln zu suchen.
    • Eine genauere Erklärung der Schlüsselwörter AND OR NOT, bzw. Expansion dieser Möglichkeiten mit Klammern.
    (StichwortA AND StichwortB) OR (StichwortC AND StichwortD)
    
    • Die Suche beschleunigen 🤡

    Grüssli



  • Dravere schrieb:

    Ausschliessen von Code aus der Suche.

    Das ist derzeit völlig unmachbar. Dazu müsste die DB-Struktur eine komplett andere sein, als sie es mit PhpBB (und den meisten anderen BBs) ist. (Eigene Code-Tabelle, die in der Post-Tabelle bei Bedarf referenziert wird, wäre aber in vielerlei Hinsicht auch unpraktisch.)

    Nur den Title durchsuchen. Auch hier hat es einen ähnlichen Grund wie oben.

    Das wäre machbar und sinnvoll. Ich sollte mal eine Liste von zu behebenden Bugs und implementierbaren Features anlegen.

    Die Suche beschleunigen 🤡

    Viel wird da ohne frische Hardware wohl kaum mehr drin sein. Wir haben jetzt wieder eine (funktionierende) Suche, aber haben unsere Storage Engine so ausgewählt und konfiguriert, dass die Benutzung des Forums und das Posten möglichst flott sind; die Suche ist eine etwas andere Baustelle, die wir im Zweifelsfall gegenüber der sonstigen Forumsbenutzung bewusst vernachlässigen.


  • Administrator

    Danke für die Antwort.
    Irgendwie hatte ich erwartet, dass das erster Feature nicht umsetzbar wäre, aber fragen kann man ja 😃

    Ihr braucht neue Hardware? Wie wäre es damit:
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-217824.html
    Vor allem die Vorschläge später wegen dem Spenden.
    Gab grad einen aktuellen Fall im Internet: http://www.furaffinity.net/
    Denen ist der Server kaputt gegangen und sie haben ein Spendenaufruf gestartet. Innert einer Woche haben die 6'500 US$ reinbekommen. Aber naja ...

    Und was ist mit dem AND OR NOT Zeug? 🙂

    Grüssli



  • nman schrieb:

    Viel wird da ohne frische Hardware wohl kaum mehr drin sein.

    offtopic frage, auf was für einer maschine ist das forum überhaupt derzeit gehostet?



  • Dravere schrieb:

    Ihr braucht neue Hardware?

    Eigentlich sind wir mit der aktuellen Performance durchaus nicht unzufrieden, ich sehe da keinen besonderen Handlungsbedarf. Wir haben mittlerweile ein System, das recht zuverlässig und stabil ist und bei normaler Forenbenutzung auch recht performant. Dass die Suche ein bisschen lahm ist und ein paar Sekunden braucht, stört mich nicht so sehr.

    Ich schätze, das Marcus an der Spendensache ohnehin dranbleibt, nur mag niemand undurchdachte Schnellschüsse.

    http://www.furaffinity.net/

    Uh, klingt... Äh... Vielversprechend. 🤡

    Und was ist mit dem AND OR NOT Zeug? 🙂

    Hatte ich überlesen. Ehrlich gesagt möchte ich persönlich die Suche nicht unbedingt anfassen müssen, das ist ziemlich eklig. Meistens brauche ich die Features auch nicht, finde es darum auch nicht so wichtig, das einzubauen.

    Wenn sich jemand findet, der das unbedingt haben möchte und das implementiert, habe ich aber natürlich kein Problem damit.

    Ich werde mal irgendwo eine öffentliche Bug-Sammlung bzw. TODO-Liste für das Forum einrichten, damit auch die Prioritätsliste ein bisschen transparenter ist.

    sothis: IIRC ein Single-Core Athlon64 mit 2GB RAM.



  • nman schrieb:

    sothis: IIRC ein Single-Core Athlon64 mit 2GB RAM.

    ah, danke 🙂


  • Administrator

    nman schrieb:

    Ich schätze, das Marcus an der Spendensache ohnehin dranbleibt, nur mag niemand undurchdachte Schnellschüsse.

    Freut mich zu hören, dass ihr an der Sache dran bleibt. Schnellschlüsse will hier wohl definitiv niemand. Jeder der schon etwas programmiert hat sollte wissen, wohin die Schnellschüsse führen 😃

    nman schrieb:

    Wenn sich jemand findet, der das unbedingt haben möchte und das implementiert, habe ich aber natürlich kein Problem damit.

    Da müsste man aber zuerst an den PHP Code rankommen oder ist das die normale PhpBB Suche?

    nman schrieb:

    Ich werde mal irgendwo eine öffentliche Bug-Sammlung bzw. TODO-Liste für das Forum einrichten, damit auch die Prioritätsliste ein bisschen transparenter ist.

    Das wäre mal ganz genial! So kann man gleich auch nachschauen ob der Bug oder ein Feature bereits schon erwähnt wurde.

    Grüssli



  • Dravere schrieb:

    Da müsste man aber zuerst an den PHP Code rankommen oder ist das die normale PhpBB Suche?

    Ich werde da mal einen Diff machen und das bei Bedarf im Modforum abklären. Aber wenn sich jemand findet, der das implementieren würde, dann verweist ihn einfach an admin@c++.de und wir kümmern uns um die Details.


  • Administrator

    nman schrieb:

    Aber wenn sich jemand findet, der das implementieren würde, dann verweist ihn einfach an admin@c++.de und wir kümmern uns um die Details.

    *sich umschaut und sieht wie alle Raten das sinkende Schiff verlassen*
    Hmmm ... 😃

    Mal schauen, vielleicht findet sich ja jemand. Hauptproblem ist meistens die Zeit und wenn man sich fest meldet, dann steht man noch unter Druck. Ist schöner, wenn jemand mal Lust hat und es sich einfach mal anschaut, zumindest ist das bei mir so ^^

    Aber jedenfalls vielen Dank für die tollen Antworten und Information.

    Grüssli



  • Ich hatte mich vor einiger Zeit schonmal mit einem Kollegen in die phpbb-Suche reingearbeitet und auch einen patch geschrieben, der allerdings damals aufgrund von versions-problemen mit mySQL nicht auf dem Server lief. Da sind imo noch ein paar kleine bugs drin, aber nichts was sich nicht beheben ließe, die version auf dem server sollte inzwischen auch passen. Leider habe ich momentan keine Zeit mich darum wirklich zu kümmern, aber wenn sich jemand finden würde, der in PHP fit ist und Lust hätte das zu machen, wäre ich gerne bereit meinen Code zur Verfügung zu stellen und auch mit Rat und Tat zur Seite stehen.

    Der Patch sollte meiner Erwartung nach sowohl die Performance, als auch die Qualität der Suchergebnisse verbessern. Ob wir auch OR und nicht nur AND-Verknüpfung zugelassen hatten weiß ich nicht mehr... allerdings war es glaube ich auf jeden Fall ohne Klammerung. Aber statistisch gesehen benutzt die wohl eh keiner bzw. nur, um die Qualität der Suchergebnisse zu verbessern, was dann aber zumindest größtenteils eh überflüssig würde (hoffentlich).



  • Oh, ich dachte, Dein Patch sei schon längst eingespielt. Ich habe damals ja extra deswegen ein 5er-MySQL installiert, wusste nicht, dass das dann im Sande verlief. 🙂



  • Ich habe diese Woche Urlaub und kann mal den Staub vom Code abklopfen. Vielleicht kriegen wir das ja in Betrieb? Allerdings bräuchte ich dabei Unterstützung, weil ich wie gesagt mit PHP nicht so fit bin und daher gerne hätte, dass sich noch jemand anders die Änderungen ansieht, insbesondere im Hinblick auf Sicherheitslücken.



  • Ja, können wir sehr gerne machen, kann nur sein, dass meine Antwortzeit momentan nicht so toll ist, bin diese Woche viel unterwegs.

    Würde die Änderungen auf alle Fälle auch im Mod-Forum posten, je mehr Leute, sich das durchlesen, desto besser.



  • Hallo liebe engagierte obere 10000 des Forums ( 😉 ),

    ich weiß absolut nicht, ob das jetzt hierher passt - zumal der Thread ja schon eine Weile nicht mehr angefasst wurde - aber ich poste es einfach mal:

    Für mich als "Durchschnittsbenutzer" dieses Forums ist es absolut unbegreiflich warum die Suche im Unterforum "VCL/C++Builder" mit dem Suchbegriff *Dateigrö* keine Ergebnisse liefert, die Suche mit dem Suchbegriff *Dateigröße* jedoch 57 Ergebnisse liefert!?!

    MfG



  • Die Suchfunktion ist derzeit aus Performance Gründen ein wenig Eingeschränkt und kann nur ganze Wörter matchen. Wir arbeiten daran einen Patch einzuspielen (siehe Jesters Beitrag). Aber aus zeitlichen Gründen ist dies bisher noch nicht gelungen.



  • Ich hab mal ne Suche in C++ geschrieben, die in O(log n) Wildcardsuchen ausführen kann.
    Falls Interesse besteht kann ich mich gern dahingehend engagieren, dass diese Suche hier eingesetzt werden kann.
    Würde wahrscheinlich doch viel Belastung vom Server nehmen.



  • Tobias3 schrieb:

    Ich hab mal ne Suche in C++ geschrieben, die in O(log n) Wildcardsuchen ausführen kann.

    Das würde mich schon aus rein theoretischer Sicht interessieren. Bist Du sicher, dass Du immer und bei jeder Eingabe nur logarithmische Zeit benötigst?



  • Jester schrieb:

    Tobias3 schrieb:

    Ich hab mal ne Suche in C++ geschrieben, die in O(log n) Wildcardsuchen ausführen kann.

    Das würde mich schon aus rein theoretischer Sicht interessieren. Bist Du sicher, dass Du immer und bei jeder Eingabe nur logarithmische Zeit benötigst?

    Naja die Suchbegriffe werden sortiert in eine Datei geschrieben und darauf wird dann eine modifizierte binäre Suche ausgeführt.
    Damit Suchanfragen wie *est oder tes* ebenfalls in (ungefähr) O(log n) zum Suchergebnis führen wird für z.B. test - test est st (das letzte je nach Einstellung nicht) zum Suchindex hinzugefügt.
    Wenn man also nach est sucht kommt man zu est - da befindet sich dann ein Eintrag zu test.
    Sucht man nach tes
    so landet man durch die binäre suche direkt bei test, weil es "tes" nicht gibt, oder er landet bei "tes" geht dann aber den Suchindex weiter runter bis die Suchbegriffe nicht mehr mit "tes" anfangen.
    Die Suche ist also im worst-case O(n), falls alle Suchbegriffe im Index mit "tes" anfangen, aber in der Praxis wohl eher O(log n) ;).
    Zu dem Suchbegriff sind dann in der Datei lauter ids, die vorher schon bei der indexerstellung nach relevanz sortiert wurden.
    Beim verUNDen werden mehrere suchanfragen ausgeführt und die Schnittmenge ausgegeben. (Das ist natürlich dann auch nicht mehr in O(log n) machbar...).

    Wie macht das die phpBB-Suche? Was macht die, wenn nach einem Suchbegriff mit Wildcard gesucht wird?



  • Die phpBB-Suche packt ein % in den Suchstring und delegiert das Problem mittels "WHERE blablabl LIKE "tes*" an die mySQL-Datenbank weiter. 🙂

    Die UND-Verknüpfung stelle ich mir in dieser Weise problematisch vor... genau das macht die phpBB-Suche derzeit auch. Leider führt das dazu, man keine Ergebnisse kriegt, wenn man ein häufiges und ein seltenes Wort sucht, da aus Performance-Gründen nur die ersten x Treffer in die Liste aufgenommen werden.



  • Wow, aber unser Index hat ja jetzt schon 30 Mio Einträge oder, der wird mit so einer Idee ja nicht wirklich kleiner.


Anmelden zum Antworten