Seite 1 von 2

Stimmt was nicht mit meiner Foren-Suche ?

Verfasst: 31.12.2006 12:49
von hackepeter13
Hi,

ich hab gestern folgendes bei mir festgestellt.

Und zwar zweifle ich gerade an meine Such-Funktion im Forum.

Folgendes:

Ein User erstellte ein neuen Thread mit dem Titel "Motorhaubenverlängerung".
Im Forum gibt es aber schon 3 Themen mit genau der selben Überschrift.
Darauf wollte ich ihn natürlich aufmerksam machen und somit auch gleich auf die Such-Funktion.
Nur wenn ich in der Foren-Suche "Motorhaubenverlängerung" eingebe, findet er keine Ergebnisse.

Nebenbei habe ich auch noch einen Mod installiert, der 5 ähnliche Themen unten im Thread anzeigt.
Da werden logischerweise die anderen 3 Threads mit der Überschrift "Motorhaubenverlängerung" angezeigt.

Warum aber kann man diese nicht über die Foren-Suche finden?
Ist das Wort zu lang oder woran liegt das?

Ich mein sowas verursacht doch erst recht unnützige Threads, weil man vorher in der Foren-Suche nix gefunden hatte, obwohl es ja schon mehrmals existiert.

PS: Bei anderen (einfache) Begriffen, findet die Suche, alles mögliche.

Verfasst: 31.12.2006 13:16
von nickvergessen
bist du zwischen durch mal mit dem Forum umgezogen?

Verfasst: 31.12.2006 14:37
von hackepeter13
Nö, der erste und letzte Umzug war vor einem Jahr (Ende 2005) und da hatte ich auch den vollen Inhalt der MySQL mitgenommen, sprich auch alles was damals schon in den Tabellen "phpbb_search_result" und "phpbb_search_wordmatch" drin stand.
Und geleert wurden die zwischendurch auch nicht, sind mitlerweile auch fast 10 MB groß.

Verfasst: 31.12.2006 17:29
von Miriam
Mit Deiner Suche ist alles okay.

Das Problem liegt hier:
finde in includes/functions_search.php

Code: Alles auswählen

	if ( $mode == 'post' )
	{
		$entry = str_replace('*', ' ', $entry);

		// 'words' that consist of <3 or >20 characters are removed.
		$entry = preg_replace('/[ ]([\S]{1,2}|[\S]{21,})[ ]/',' ', $entry);
	}
Dummerweise hat Motorhaubenverlängerung mehr als 20 Buchstaben. Damit wird es nicht in die Tabelle der Suchwörter aufgenommen.
Aber die Spalte ist (bei mir) VARCHAR(50), somit ändern wir das flink auf:

Code: Alles auswählen

	if ( $mode == 'post' )
	{
		$entry = str_replace('*', ' ', $entry);

		// 'words' that consist of <3 or >50 characters are removed.
		$entry = preg_replace('/[ ]([\S]{1,2}|[\S]{51,})[ ]/',' ', $entry);
	}
Du musst nochmal den Suchindex neu aufbauen lassen (mittels MOD), weil natürlich die schon geposteten Motorhaubenverlängerung(en) noch nicht in der Tabelle sind.

Verfasst: 31.12.2006 18:06
von hackepeter13
@Miriam
THX

Ich hatte mir schon fast soetwas gedacht, mit einer Zeichenlänge oder so.
Miriam hat geschrieben:Du musst nochmal den Suchindex neu aufbauen lassen (mittels MOD), weil natürlich die schon geposteten Motorhaubenverlängerung(en) noch nicht in der Tabelle sind.
Und welchen Mod nimmt man dafür, bzw. wie nennt sich solch ein Mod.
Wenn nicht, kann ich ja das Wort auch manuell in die MySQL hinzufügen, weil andere längere Wörter sind mir erstmal so nicht bekannt.

PS: VARCHAR(50) ist bei mir auch.

Verfasst: 31.12.2006 18:22
von Miriam
Ich bin der Meinung der DB Maintenance MOD kann das.

Verfasst: 01.01.2007 14:33
von hackepeter13
OK, diesen Mod hatte ich mir schonmal runtergeladen, aber noch nie eingebaut. (Hab auch eben die neue Version runtergeladen)

Nun les ich aber in den PDF-Handbuch, dass das ganze auf der Datenbank-Struktur eines Standard phpBB setzt.
Nun habe ich aber zig (ca. 80) Mods bei mir eingebaut.
Da ist in der Datenebank natürlich auch nicht mehr alles so wie beim Standard.

Wäre schön, wenn jemand Erfahrungen mit diesesn Mod und einem starkt gemodeten phpBB gemacht hat.

Verfasst: 01.01.2007 15:27
von Miriam
Du sollst ja auch nur de Funktion des Sucheaufbaus benutzen.... Das passt dan schon. Aber trotzdem: Vorher DB Sicherung (mittels MySQLDumper);

Verfasst: 01.01.2007 19:37
von hackepeter13
Ui, bei der Funktion "Suchindex neu aufbauen" kommt ein Hinweis, dass das mehrere Stunden in Anspruch nehmen kann, wo dann auch in der Zeit das Board deaktiviert ist.

Ich warte dann wohl mal auf den 0 Uhr Ding-Dong-Schlag ^^, da juckt es ja dann kaum noch einem, wenn das Board langer deaktiviert ist.

Verfasst: 02.01.2007 23:26
von hackepeter13
So Nachtrag.

Irgendetwas scheint da aber immernoch nicht zu wollen.

Hab das jetzt gemacht, also in PHP-Datei die Änderung mit dem DB Maintenance MOD den Such-Index neu aufbauen lassen und trotzdem findet die Foren-Suche nix zum Wort "Motorhaubenverlängerung", obwohl es 3 Threads darüber gibt.

Ich hab auch leider bisjetzt nich kein anderes Wort mit mindestens 20 Zeichen gefunden, womit ich es mal testen könnte, die meisten langen Wörter haben 19 Zeichen :roll:

Woran kann das Problem nun liegen?