Moin!
Hab nochmal eine kleine Frage. Ich entwickle ein eigenes kleines Forum. Die einzelnen Threads bzw. deren Posts sind in einer MS-SQL Datenbank untergebracht. Jetzt muss natürlich noch das implementiert werden, was in keinem Forum fehlen darf, obwohl es eh keiner richtig benutzt. 😁 Die Forensuche nämlich. Ich hatte die von MyCSharp grad mal bemüht, aber keine Antwort auf meine Frage gefunden, btw. 🙁
Also, wie könnte man eine ordentliche Forensuche effektiv implementieren? Meine erste Idee war, die Nachrichten jedes Threads nacheinander aus der DB zu laden, mit z.B. String.IndexOf zu schauen ob eines der Stichwörter enthalten ist und wenn ja den Thread auf einen Stapel zu packen, aus dem dann nachher die Ergebnisliste generiert wird. Allerdings kommt mir das irgendwie sehr "BrutForce" vor. 😉 Hättet ihr da bessere Ideen?
Wozu hast du denn eine DB? Einfach eine entsprechende Select-Anfrage loslassen....
Wäre schön wenn es so einfach wäre, aber da Beiträge nunmal in der Regel länger sind, müsste ich sie schon als text Speichern, was nicht indiziert ist. Hm, kann man text-Felder in einer DB überhaupt ordentlich durchsuchen mit select?
Okay, hab nicht so die große Ahnung von DBs, wenn das geht dann glaub ich das mal. 😉 Wie könnte so ein select aussehen?
Natürlich geht das. Stichwort "Volltextsuche".
Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden
Hm, kann man text-Felder in einer DB überhaupt ordentlich durchsuchen mit select? Dürfte unter SQL mit
WHERE ThreadText LIKE '%stichwort%'
gehen.
Es ist toll jemand zu sein, der nichts von der persönlichen Meinung Anderer hält. - frisch-live.de
Original von Golo Haas
Natürlich geht das. Stichwort "Volltextsuche". Genau, einfacher gates schon gar nicht mehr. 🙂
Das Fehlen einer solchen engine dürfte an mySQL-basierten Foren merkbar sein. Die armen Seelen müssen sich das nämlich selbst mit Suchworttabellen basteln. 😁
edit: Hoi, relativ hoher Tippfehleranteil. (wie gesagt, relativ 😁 )
MySQL hat eine Volltext-Suche seit Version 3.x.
Aber vermutlich weiß keiner, dass es soetwas gibt 😁
Also ich kenne es z.B. von phpBB her so, dass eine weitere Tabelle angelegt wird mit Suchworten. Jedes Wort, dass irgendwann mal gepostet wurde und nicht in einer Sperrliste steht, das wird darin aufgeführt. Über eine weitere Tabelle werden Post und Suchwörter verknüpft.
Diese Liste muss natürlich nicht nur beim Erstellen sondern auch beim Update und Löschen (falls es das gibt) aktualisiert werden.
Sarkusmus ist, wenn nichts mehr hilft, außer Lachen.
Ja, dadurch geht die Suche schneller, da nicht mit LIKE die Posts durchsucht werden müssen, sondern nur die Wortliste mit einem normalen Vergleich...