Zum Inhalt springen

alte Suchergebnisse

Erstellt am 3. März 2008 · 3 Antworten · letzte Antwort am 12. März 2008

Tags: Suche, Frage

daniz78 ·

Hallo Forum-Entwickler & Community!

Ich habe ein Problem mit der mm_forum Extension Version 0.1.4

Nachdem ich die Tabellen "tx_mmforum_posts", "_posts_text", "_topics", "_wordlist", "_wordmatch" geleert habe und neue Themen mit Posts angelegt habe bekomme ich nach der Indizierung der Suche Phantom-Ergebnisse geliefert, die nicht mehr existieren.

Im Link ist z.B. keine Forum-ID angegeben ( [tid]= )

In welcher Tabelle werden noch Informationen gespeichert?

Gruß, Daniz

m.​helmich ·

Hallo,

es gibt noch die Tabelle tx_mmforum_searchresults, hierin werden kurzfristig (halbe Stunde) Suchergebnisse gecached, damit nicht jedes Mal, wenn jemand in der Suche eine Seite vor oder zurückblättert die komplette Suche noch einmal durchgeführt werden muss. Sprich: Entweder diese Tabelle auch noch leeren oder einfach nen bisschen warten... 😉

Martin

daniz78 ·

Hallo Martin,

vielen Dank für den Hinweis, ich habe auch die Tabelle einmal geleert.
Leider hat das alleine noch nicht zum gewünschten Ergebnis geführt!

Ich musste erst noch so viele Beiträge anlegen, wie ich vorher hatte und
anschliessend die Tabellen "tx_mmforum_searchresults", "_wordlist" und "_wordmatch" leeren.

Auf den ersten Blick schien damit das Problem der Phantom-Ergebnisse behoben zu sein.

Gruß, Daniz

sn1pper ·

Hallo Daniz.
Ich hatte das selbe Problem, allerdings wurden die Falschen Suchergebnisse immer wieder angezeigt.
Darum habe ich mal ein wenig mit mysql herumexperimentiert und die Suchfunktion der Extension ein wenig umgeschrieben.

$search = "";
$delimitter = "%";
$suchstring = explode(" ",t3lib_div::_POST("tx_mmforum_pi4[searchstring]"));

for($i=0;$i<count($suchstring);$i++){
$search .= $delimitter.$suchstring[$i];
}
$search .= $delimitter;

$query =  "SELECT pt.post_text, t.topic_title, f.forum_name, t.topic_time ";
$query .= "FROM   tx_mmforum_posts p, tx_mmforum_forums f, tx_mmforum_topics t, tx_mmforum_posts_text pt ";
$query .= "WHERE pt.post_text LIKE '$search' AND pt.post_id = p.uid ";
$query .= "AND p.topic_id = t.uid AND t.forum_id = f.uid ";
$query .= "AND pt.deleted = 0 AND pt.hidden = 0 ";
$query .= "AND p.deleted = 0 AND p.hidden = 0 ";
$query .= "AND t.deleted = 0 AND t.hidden = 0 ";
$query .= "AND f.deleted = 0 AND f.hidden = 0;"; 

....

mit dieser Abfrage bekommst du nur Eintraäge die nicht gelöscht sind. Ohen irgendeinen Cache zu leeren.
Den rest vom Skript (auslesen etc) kannst du dir ja selber dazu reimen.
Ich will dir den Spaß am selber coden ja nicht nehmen.

Gruß,
Thorsten