Entwicklung einer Suchfunktion hier im Forum

  • Liebe Forengemeinde,


    auf meine Website möchte ich gerne eine solide Suchfunktion mit PHP implentieren. Bisher hatte ich eine fixfertige Suchfunktion von einem Drittanbieter. Jedoch enthielt diese ein Copyright, was mich unglaublich störte. Nun wollte ich Fragen wie grundsätzlich eine Suchfunktion über PHP funktioniert?


    Ich nehme an, man hat ein Eingabefeld


    Code
    1. <form name="form1" method="post" action="search.php">
    2. <p><input class="normal" type="text" name="search" /></p>
    3. <p><input class="search" type="submit" name="Submit" value="Suchen" /></p>
    4. </form>


    welches eine PHP Datei aufruft, den Suchbegriff auswertet und eine Liste mit dem Ergebnis ausgibt. Ich möchte die Suchfunktion gerne selber machen, bin jedoch in PHP ein unglaublicher Anfänger und bin auf Eure Hilfe angewiesen.


    Wäre froh, wenn mir jemand einige Inputs geben kann, damit ich die ersten Schritte selber ausprobieren kann und falls ich nicht mehr weiterkomme, wieder hier nachfrage.


    Es geht mir vor allem darum, dass ich genau weiss, wie das Skript funktioniert.


    Vielen Dank jetzt schon für Eure Hilfe!

  • Naja, das ist je nach system recht komplex. Wenn ein drittanbieter das macht, wird er deinen quelltext durchsuchen, und nur die inhalte auslesen, und dann je n ach häufigkeit von wörtern Sortieren, und das nacher ausgeben.



    Es giebt einige möglichkeiten. Am einfachsten ist es natürlich, wenn man sich schon ein adminpanel geschrieben hat, und die texte, inhalte der seite über eine DB abgearbeitet werden.


    Falls das zutreffen sollte. Könntest du mit tags arbeiten.
    Dann einfach zu den einzelnen seiten einfach passende tags generrieren oder die inhalte durchsuchen lassen.


    Nachträglich könnte man natürlich auch eine tabelle einrichten, und für verschiedene seiten tags erstellen. Und bei der suche, diese dann durcharbeiten.


    Wenn man auf eine DB verzichten möchte, müsste man bei jeder suchanfrage den kommpleten content der seite durchgehen, und mittels preg_match Alle texte durcharbeiten, die html /php sachen ausschliesen, und dann die ergebnisse nach häufigkeit sortieren.


    Die beste möglichkeit ist natürlich beides zu verbinden. Wenn jemand einen suchbegriff eingibt, werden alle seiten durchgearbeitet, und dann die treffer für die anfrage in einer db gespeichert. Und dann nach und nach über die db abgefragt.


    Ist allerdings auch nicht so simpel.


    Ausem kopf kann ich dir da auch kein genaueres Konzept schreiben. Müsste man mal drüber fachsimpeln =)


    Greetz TimTim

  • Hörtsich nicht übel an ich wäre mit von der partie wenn ihr nichts dagegen habt da ich mir überlege eine für mein forum an dem ich gerade bastel zu machen.
    @ NeoAramis:
    Wenn man den ablauf eines scriptes einmal verstanden hat einige der wichtigsten grundfunktionen kennt und wenn man was braucht einfach mal bei php.net schaut findet man eigentlich recht schnell einen weg um zu ereichen was man möchte...


    Basic´s und ein wenig übung und die sache läuft... XD
    MFG
    R4Zz0R :lol:

  • Naja, für ein forum würde ich da n bissel anders anfangen. Je nachdem was du alles suchen möchtest. Aber wenn man n forum schreiben kann, wird das mit der sufu, auch kein großes problem sein.


    Können uns ja ma zu dritt zusammensetzen und was ausarbeiten =)


    Greetz TimTim

  • Deine Inputs klingen gut, timtim. Wäre eine gute Idee wenn wir das zu dritt machen. Können es hier ausdiskutieren, so bekommt es jeder mit.


    Die Suchfunktion sollte schliesslich auf dieser Website seinen Dienst leisten: <!-- m --><a class="postlink" href="http://web-technik.org">http://web-technik.org</a><!-- m -->


    lauras : Könntest du diesen Thread vielleicht als wichtig markieren?


    Jop, könnte ich.. sagt mir Bescheid wenn ihr fertig seid, dann könnt ihr das Ergebnis ja iwie bei Werke/Pages posten und ich nehm das ganze wieder raus...


    Danke!


    Kein Ding.. dafür bin ich ja da.. ;)

  • Keine gute idee, jenach wie weit ihr mit PHP seit, müssen wir da erstmal grundwissen schaffen. Und jenachdem muss ich euch noch n paar sachen erklären. Würde vorschlagen, das wir das über Skype machen. Denn es wird viel kleinkrams machen.


    Aber du könntest ja ne Doku schreiben. Und unsere schritte, und überlegungen hier posten.


    Greetz TimTim

  • ich finde ein forum und eine suche sind schon sehr unterscheidlich und wer ein forum schreiben kann kann nicht zwangsläufig eine suche realiesieren...


    Skype ist da ich via umts online gehe für mich ne schlechte lösung aber ich finde das ganze hier zu dirskutieren eigentlich keine schlechte idee um mal ein beispiel für gutes teamwork zu präsentieren... :D:D:D


    Skype wenn dann nur schriftlich und nicht per voip bei mir halt werde euch per pm meinen nick zukommen lassen sobald ich mir meinen wieder gemacht hab.


    MFG


    R4Zz0R

  • da gibt es mehrere möglichkeiten so wie ich das sehe ...
    die lautähnlichkeit 2er strings berechnen also einmal dem was eingegeben wurde und das was in der db steht


    oder


    den gesamten content nach such tags durchsuchen


    bei beidem dann alle seiten mit dem entsprechenden beiträgen nach relevanz sortieren und die liste ausgeben lassen


    problem:


    wie die relevanz feststellen?

  • Eben, es gibt zu viele sachen, die erst besprochen werden müssen. Und wenn das ausschlieslich übers Forum gemacht werden soll, ist das für mich zu umständlich.


    Da sind mal schnell zwei wörter schreiben ne blöde sache. Ich möchte, wenn mit euch das zeug auch ein wenig genauer besprechen. Das ihr auch die logig dahinter versteht. Und das so im Forum zu schreiben, verbraucht unnötig viel platz im thread.


    Daher, über skype im chat.



    Naja, razzor, das is eben die sache. Man kann das ganze allgemain halten, was natürlich für das forum am besten währe, denn eine speziell zugeschnittene version für eine seite, bringt anderen wenig.



    Und möglichkeiten gibt es ziemlich viele, da möchte ich dann auch nochmal näher drauf eingehen.


    Greetz TimTim

  • Sodele, hab mir heute nochmal ein paar Gedanken gemacht, zu der Sufu, wir sollten mal herausfinden wer nun alles mitarbeiten möchte, wie gesagt mir sind ist die Anzahl von Leuten egal, das wichtigste ist allerdings, das sie zu bestimmten „Terminen“ erscheinen können. Wenn wichtige Sachen besprochen werden müssen. (wird nicht so häufig vorkommen).


    Weiter habe ich überlegt, ob wir etwas voraussetzen, das die Leute, die mit entwickeln wollen, mitbringen sollen. Dabei geht es mir nicht um den Programmierskill in Sachen PHP, sondern eher in das eindenken in so eine Suchfunktion. Das sich jeder dazu ein kleines Konzept schreibt, wie so eine Suchfunktion funktionieren könnte, was eine Suchfunktion ausmacht, was sie können sollte.


    Wie immer ist das Konzept das Wichtigste bei der Entwicklung, die Programmierung selbst ist, falls ein gutes Konzept vorliegt das einfachste.


    Die wichtigsten fragen bei einer Suchfunktion sind (denke ich)


    Woher kommen die Daten die durchsucht werden sollen
    Nach welchen Kriterien durchsucht man diese Daten dann
    Welche Möglichkeiten soll die Administration bieten
    Auf was für Websites „Konstrukte“/ „Designs“ soll die suche passen


    Da man nicht an alles denken kann, ist es wichtig, das sich jeder mal mit den fragen auseinander setzt, und diese versucht zu beantworten. Am ende besteht das „Programm“ selbst nur aus Datenbank abfragen, Regexpresions und vergleichen, aber diese sinnvoll einzusetzen, ist das Geheimnis.


    Daher würde ich den Leuten, die mitarbeiten wollen raten, ein kleines Konzept auszuarbeiten, das wir dann besprechen können, um anschließend aus vielen eins zu machen.



    Fragen oder Anregungen dazu? Immer gerne her damit wie gesagt das obere ist nur eine Idee um etwas zu haben, damit man anfangen kann. Hier können sich auch alle beteiligen die selbst kein PHP können.. aber die entsprechenden Ideen haben.


    Greetz TimTim