Hi,
ich möchte eine Volltextsuche umsetzen. Sie sollte einigermaßen performant arbeiten (die Suche, bei der Indizierung ist die Performanz nicht soo wichtig). Die zu indizierenden Daten liegen in einer MySQL-Datenbank. Kennt jemand bereits fertige Implementationen einer Indizierung bzw. eine Klasse die für mich indiziert, die in sauberem PHP5 geschrieben ist und falls sie Datenbankzugriff benötigt PDO verwendet? Wenn nein, sehe ich es richtig, dass man eine Indizierung wie folgt selbst implementiert?
Man geht alle zu indizierenden Daten durch, konvertiert sie in kleingeschriebene Einzelwörter, merkt sich in der DB in einer Spalte das Wort und in einer anderen die Dokumente in denen es wie häufig vorkommt. Bei der Suche sucht man alle Wörter in der DB und prüft bei welchen Dokumenten die gesuchten Wörter insg. am häufigsten vorkommen. Aber wie macht man es dass man z. B. Wortketten sucht, d.h. in Anführungszeichen eingeschlossene Wörter nur in Verbindung gelten lässt? Funktionen wie und/oder-Verknüpfung, Wörter ausschließen und Wildcards sind mir relativ klar glaube ich.
Wenn man Aufwand sparen könnte in dem man eine fertige Implementation nutzt würde mir das halt besser gefallen *g*. Wenn wir schon dabei sind: Ist dieses "Ich tippe einen Suchbegriff und per Ajax klappen sich gleich passende Dokumente aus" sinnvoll? Muss ich es selbst implementieren, gibt es bereits gute Umsetzungen? Mir ist es wichtig dass das die Eingabe nicht verlangsamt (ich kenne ein Formular, da braucht jedes Zeichen bis es mal auf dem Bildschirm steht >3s, weil die ihre blöden Ergänzungsvorschläge ausklappen müssen).
Wie stellt man die Ergebnisse am besten dar? Mit Ausschnitten aus dem den Suchbegriffen umgebenden Text, oder mit kurzen Dokumentbeschreibungen? Wie ermittelt man die Ausschnitte aus dem Text, die die Suchbegriffe umgeben? Mein Problem liegt dabei nicht beim finden des Textausschnittes, sondern dass Google z. B. bei sehr vielen Suchbegriffen oder Wörtern die im Dokument häufig vorkommen trotzdem nur 1, 2 Ausschnitte anzeigt.
Wie kann Google in einer derart hohen Geschwindigkeit einen so großen Index durchsuchen, wo doch die Forumssuche hier schon länger braucht, um alte Beiträge zu finden?
Schöne Grüße
Julian