Seite 4 von 6
Verfasst: 04.10.2006 12:47
von mgutt
heißen deine tabelle "phpbb_" usw.? Sonst musst Du natürlich den Tabellennamen anpassen in der Abfrage.
Verfasst: 04.10.2006 12:59
von Garfield312
Jo, die heißen so. Das wäre aber sogar mir aufgefallen, wenn das geändert hätte werden müssen
Ich versuch das gleich mal nochmal, vielleicht hatte der Server grad ne schlechte Minute
EDIT:
Jetzt geht's. Ergebnis :
[ externes Bild ]
Verfasst: 04.10.2006 13:08
von Olli Oberhausen
@mgutt...
Was bei dir performancemäßig helfen würde
Code: Alles auswählen
if($topic_id != 1166) add_search_words('single', $post_id, stripslashes($post_message), stripslashes($post_subject));
Danke für die gute unterhaltung - hab immer noch ein grinsen im gesicht
Sorry for beeing offtopic, Olli
Verfasst: 04.10.2006 22:32
von mgutt
@ olli
wie kommst du darauf
meine zeile lautet nämlich: (kein Scherz)
Code: Alles auswählen
if ( $topic_id != '6311' )
{
add_search_words('single', $post_id, stripslashes($post_message), stripslashes($post_subject));
}
@ garfield312
Die Wörter dürften ALLE nicht dort auftauchen. Eigentlich ein eindeutiges Indiz dafür, dass auch bei Dir die Liste nicht greift.
Du solltest also mal von Deinem Provider prüfen lassen, ob die Datei search_stopwords.txt auch bei Dir kein Plaintext-Format aufweist.
Bringe das auf jeden Fall mal in Erfahrung.
Übergangsweise benenne die jetzige Datei um und lade Dir mal die search_stopwords von mir oder aus dem phpBB-Paket und lade sie neu hoch.
Gruß
EDIT: Übrigens. Wenn die Datei in Ordnung ist, dann brauchst Du nur das Script aus dem folgenden Link unter "Löschen von search_stopwords.txt Wörtern aus den search Tabellen" abarbeiten lassen:
http://www.phpbb.de/doku/kb/artikel.php ... erkleinern
Der Neuaufbau des Suchindexes ist überhaupt nicht notwendig, wie ich eben festgestellt habe. Das ist totaler Unsinn.
Verfasst: 04.10.2006 23:24
von Gumfuzi
Wo auch noch viele Daten abgefragt werdem, sind zB. Suchabfragen von eigenen Postings (egosearch), da werden zuerst alle Posts des Users gesucht:
Code: Alles auswählen
$sql = "SELECT post_id
FROM " . POSTS_TABLE . "
WHERE poster_id IN ($matching_userids)";
Dann werden zu allen post_id's die Threads gesucht:
Code: Alles auswählen
$sql = "SELECT p.topic_id
FROM $from_sql
WHERE p.post_id IN (" . implode(", ", $search_id_chunks[$i]) . ")
$where_sql
GROUP BY p.topic_id";
Vor allem bei Usern mit vielen Postings werden da die Abfragen mehrere Seiten lang.
Sinnvoll wäre hier ev. in der ersten Abfrage eine Limitierung von zB. 100 Beiträgen (und nach Datum sortiert; neueste zuerst)
Das gleiche bei der "normalen" Suche nach Wörtern (Limitierung; nach Datum) - wer sieht sich schon zB. alle 5789 Suchergebnisse an...
P.S.: die stopword greifen bei mir zum Glück bereits ohne Dein Snippet - interessant wäre ein Snippet, wo man ein Wort vorgibt, welches dann in den beiden Suchtabellen rausgelöscht wird, denn ich vermute, daß wenn man ein Wort in die stopwords hinzufügt, die alten Einträge in den Suchtabellen drin bleiben und unnötigen Platz verbrauchen.
Verfasst: 04.10.2006 23:43
von mgutt
Gumfuzi hat geschrieben:interessant wäre ein Snippet, wo man ein Wort vorgibt, welches dann in den beiden Suchtabellen rausgelöscht wird, denn ich vermute, daß wenn man ein Wort in die stopwords hinzufügt, die alten Einträge in den Suchtabellen drin bleiben und unnötigen Platz verbrauchen.
siehe den part in meinem post, den ich editiert habe. das snippet aus der doku macht genau das

Verfasst: 05.10.2006 11:16
von Olli Oberhausen
mgutt hat geschrieben:@ olli
wie kommst du darauf
Hehe, hab nur mal so ein bischen rumgeblättert, und es gibt auf
jedem Forum mindestens einen bereich (der meistens der größte ist) wo nur $%%§$% drinsteht.
T6311 hatte ich noch gar nicht gesehen

. Vielleicht solltest du auf $forum_id != 10 prüfen....
Aber wie gesagt - eure witze sind super...
Gruß, Olli
Verfasst: 05.10.2006 16:33
von Gumfuzi
danke mgutt!
*edit*
der "deutsche" Link funzt nicht mehr, ist das das gleiche Skript nur in deutsch?
Da der DM-Maintenance Mod bei mir nicht lauffähig ist (alter CH Mod), kann ich diese Tabellen auch in phpmyadmin reparieren lassen bzw. optimieren oder muss wirklich der Suchindex neu indiziert werden?
Verfasst: 05.10.2006 20:01
von mgutt
Olli_Moers hat geschrieben:mgutt hat geschrieben:@ olli
wie kommst du darauf
Hehe, hab nur mal so ein bischen rumgeblättert, und es gibt auf
jedem Forum mindestens einen bereich (der meistens der größte ist) wo nur $%%§$% drinsteht.
T6311 hatte ich noch gar nicht gesehen

. Vielleicht solltest du auf $forum_id != 10 prüfen....
Aber wie gesagt - eure witze sind super...
Gruß, Olli
Danke
Aber das Café wollte ich nicht komplett ausschließen. Das halte ich für den falschen Weg. Ich habe gehört, dass die Umstellung auf Fulltextsuche helfen kann. Das werde ich mir in jedem Fall nochmal genauer anschauen. Im Moment überlege ich schlicht und einfach die common-Funktion rauszulassen. Ich mein, die bringt eh nichts.
Gumfuzi hat geschrieben:danke mgutt!
*edit*
der "deutsche" Link funzt nicht mehr, ist das das gleiche Skript nur in deutsch?
Der Link ging noch nie.. jedenfalls solange ich die Seite kenne. Nimm das dort veröffentlichte Script. Du siehst im Code, dass die Tabellen danach eh optimiert werden. Ein Neuaufbau des Suchindexes ist wie gesagt Unsinn. Ich weiß nicht warum dieser Hinweis im Text verzeichnet ist. Man sollte dahingehend mal die Doku ändern.
Gruß
Verfasst: 05.10.2006 21:05
von Gumfuzi
ok, danke!
habe eben die search.php modifiziert und ein Limit auf max. 500 gesetzt. Dabei habe ich bemerkt, daß dieser Limiter in der ganzen search.php nicht vorkommt:
Code: Alles auswählen
//
// Search ID Limiter, decrease this value if you experience further timeout problems with searching forums
$limiter = 5000;
genaue Anleitung kann ich leider nicht posten, da die search.php bei mir schon stark gemoddet ist...
Habe nun an 4 Stellen der Datei manuell den Limiter eingefügt und noch eine Sortierung nach post_time bzw. post_id, damit auch die neuesten 500 Ergebnisse übrig bleiben.
einzig der alte CH-Mod (2.0.5) erzeugt nochAbfragen mit mehr als 1000 Datenfeldern, aber da es von der Version kein Update gibt, muss ich auf's phpBB3 warten...