Laden...

Forensuche effektiv implementieren

Erstellt von Bifiman vor 17 Jahren Letzter Beitrag vor 17 Jahren 2.368 Views
B
Bifiman Themenstarter:in
57 Beiträge seit 2004
vor 17 Jahren
Forensuche effektiv implementieren

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?

S
8.746 Beiträge seit 2005
vor 17 Jahren

Wozu hast du denn eine DB? Einfach eine entsprechende Select-Anfrage loslassen....

B
Bifiman Themenstarter:in
57 Beiträge seit 2004
vor 17 Jahren

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?

4.207 Beiträge seit 2003
vor 17 Jahren

Natürlich geht das. Stichwort "Volltextsuche".

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

2.082 Beiträge seit 2005
vor 17 Jahren

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

B
Bifiman Themenstarter:in
57 Beiträge seit 2004
vor 17 Jahren

Okay, danke, dann probier ich das erstmal aus.

347 Beiträge seit 2006
vor 17 Jahren

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 😁 )

M
1.439 Beiträge seit 2005
vor 17 Jahren

MySQL hat eine Volltext-Suche seit Version 3.x.
Aber vermutlich weiß keiner, dass es soetwas gibt 😁

L
497 Beiträge seit 2006
vor 17 Jahren

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.

T
243 Beiträge seit 2006
vor 17 Jahren

Ja, dadurch geht die Suche schneller, da nicht mit LIKE die Posts durchsucht werden müssen, sondern nur die Wortliste mit einem normalen Vergleich...