[Frage] phpbb_search_wordmatch und phpbb_search_wordlist

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
emily

[Frage] phpbb_search_wordmatch und phpbb_search_wordlist

Beitrag von emily »

Folgende Idee kam mir!

Aus Performance gründen, würde ich gerne den Eintrag (bzgl der Suche), nach einem Posting, in die Datenbank stopen. Wenn ich das richtig verstanden habe, wird jedes Wort in einem Posting abgeglichen ob schon in der Datenbank steht oder nicht, benutzt man noch diese search_stopwords.txt und search_synonyms.txt Dateien, heisst es wieder soviel Datenbankabfragen die unnötige Zeit kosten.

Im Klartext, ich möchte das abschalten, und lasse einfach Nachts täglich den Suchindex neuaufbauen und schon bin ich wieder up to date ;-) Was für mein Forum vollkommen reicht.

Spricht etwas gegen dieses Vorhaben? Hat das jemand mal getestet?

Danke!
Dave
Mitglied
Beiträge: 2085
Registriert: 25.05.2003 15:03
Wohnort: Wuppertal

Beitrag von Dave »

Nunja... Es geht auf jeden Fall schneller wenn du es bei jedem Posting machst (und ist Server schonender) als wenn du es in der Nacht macht... Besonders dauert es eine weile bis du da durch bist.
emily

Beitrag von emily »

Dave hat geschrieben:Nunja... Es geht auf jeden Fall schneller wenn du es bei jedem Posting machst (und ist Server schonender) als wenn du es in der Nacht macht... Besonders dauert es eine weile bis du da durch bist.
Nunja, ob das schneller geht mag ich bezweifeln, wenn es den Server lahm legt :roll:

Und nachts tut es mir nicht weh ;-) wenn er 10 Minuten steht...
emily

Beitrag von emily »

Ich schieb mal wieder!

Hat jemand eine Ahnung, in welcher Datei, welche Stelle sich die Abfragen befinden, ob das Wort nun schon eingetragen ist oder nicht etc. ;-)

Danke!
Benutzeravatar
cYbercOsmOnauT
Ehemaliges Teammitglied
Beiträge: 3820
Registriert: 18.02.2004 23:02
Wohnort: Göttingen
Kontaktdaten:

Beitrag von cYbercOsmOnauT »

Am mangelnden Wissen kann Deine Frage nicht liegen emily. Denke mal, Du warst/bist nur zu faul um selber schnell nachzusehen.

Natürlich wird dies in der function_post.php bewerkstelligt. ;) Die Funktion, die dazu aufgerufen wird, lautet (hört hört) add_search_words. In diesem Script finden sich auch noch andere Funktionen, die für die Suchfunktion von Nöten sind. Schau es einfach mal durch. :)

P.S.: Wäre nett, wenn Du Deine Signaturgrafik entfernst. Wir sehen sie eh nicht, da sie hinter einem htaccess-Schutz steckt. :D Das Popupfenster jedes Mal nervt. ;)

Viele Grüße,
Tekin
• prof. phpbb-Installation, Reparatur, Rettung nach Hackattacken, sowie PHP/JS Programmierung aller Art
Zend Certified Engineer, Linux Administrator und die Sicherheit von 34 Jahren Programmiererfahrung
• Interesse? Kontakt unter t.birduezen@web-coding.eu
emily

Beitrag von emily »

cYbercOsmOnauT hat geschrieben:Am mangelnden Wissen kann Deine Frage nicht liegen emily. Denke mal, Du warst/bist nur zu faul um selber schnell nachzusehen.

Natürlich wird dies in der function_post.php bewerkstelligt. ;) Die Funktion, die dazu aufgerufen wird, lautet (hört hört) add_search_words. In diesem Script finden sich auch noch andere Funktionen, die für die Suchfunktion von Nöten sind. Schau es einfach mal durch. :)

P.S.: Wäre nett, wenn Du Deine Signaturgrafik entfernst. Wir sehen sie eh nicht, da sie hinter einem htaccess-Schutz steckt. :D Das Popupfenster jedes Mal nervt. ;)

Viele Grüße,
Tekin
Nicht wirklich zu faul, nur nicht soooo wirklich klar gekommen, trotzdem danke :-) Ich schaus mir direkt mal an...
IPB_Flüchtling
Mitglied
Beiträge: 1862
Registriert: 23.12.2004 22:46

Beitrag von IPB_Flüchtling »

cYbercOsmOnauT hat geschrieben:Natürlich wird dies in der function_post.php bewerkstelligt. ;) Die Funktion, die dazu aufgerufen wird, lautet (hört hört) add_search_words.
Ahoi Tekin,

da hätte ich jetzt einmal eine Anschlussfrage: Angenommen, ich stelle auf Volltextsuche um, wie es in diesem Thread beschrieben wird, kann ich dann die Funktion add_search_words einfach deaktivieren/auskommentieren? Oder müsste ich dann befürchten, dass irgendetwas anderes nicht mehr korrekt funktioniert?

LG, IPB_Flüchtling
Benutzeravatar
cYbercOsmOnauT
Ehemaliges Teammitglied
Beiträge: 3820
Registriert: 18.02.2004 23:02
Wohnort: Göttingen
Kontaktdaten:

Beitrag von cYbercOsmOnauT »

Ehrliche Antwort: Keine Ahnung. :D Frag lieber den Coder des Mods fanrpg. ;)

Viele Grüße,
Tekin
• prof. phpbb-Installation, Reparatur, Rettung nach Hackattacken, sowie PHP/JS Programmierung aller Art
Zend Certified Engineer, Linux Administrator und die Sicherheit von 34 Jahren Programmiererfahrung
• Interesse? Kontakt unter t.birduezen@web-coding.eu
IPB_Flüchtling
Mitglied
Beiträge: 1862
Registriert: 23.12.2004 22:46

Beitrag von IPB_Flüchtling »

Ein letztes liebes Ahoi vor meiner Schlafphase, Tekin!

Danke Dir für Deine Antwort, insbesondere dass sie so ehrlich ausgefallen ist! Das zeichnet Dich aus!

Den Coder des Mods werde ich nicht noch einmal fragen -

1. habe ich das schon vor längerer Zeit in einem anderen Thread getan, ohne eine Antwort erhalten zu haben: http://www.phpbb.de/viewtopic.php?t=113095

2. bringt es nur selten etwas, deutsche Coder nach Erweiterungen/Ergänzungen ihrer Mods zu fragen: Das scheint einfach ganz und gar unmöglich zu sein. (Mit "ausländischen" Mod-Autoren habe ich diesbezüglich übrigens zumeist viel bessere Erfahrungen machen dürfen. Es gibt aber natürlich auch in unserem Sprachraum sehr löbliche Ausnahmen - die Betreffenden wissen, wenn sie gemeint sind!)

So, und das hier ist der Code, der unser aller Vorstellungsvermögen bei weitem übersteigt:

Code: Alles auswählen

##############################################################
## MOD Title: MySQL Fulltextsearch
## MOD Author: fanrpg < webmaster@fanrpg.com > (Alexander Schumacher) http://www.fanrpg.com/
## MOD Description: Adds an fulltext search
## MOD Version: 1.0.0
##
## Installation Level: Easy
## Installation Time: 2 min
## Files To Edit: 1
##                search.php
## Included Files: n/a
#
#-----[ SQL ]------------------------------------------
#
ALTER TABLE phpbb_posts_text ADD FULLTEXT (post_text);

#
#-----[ OPEN ]------------------------------------------
#
search.php

#
#-----[ FIND ]------------------------------------------
#
                     $match_word = str_replace('*', '%', $split_search[$i]); 
                     $sql = "SELECT m.post_id 
                        FROM " . SEARCH_WORD_TABLE . " w, " . SEARCH_MATCH_TABLE . " m 
                        WHERE w.word_text LIKE '$match_word' 
                           AND m.word_id = w.word_id 
                           AND w.word_common <> 1 
                           $search_msg_only";

#
#-----[ REPLACE WITH ]------------------------------------------
#
                     $match_word = str_replace('*', '%', $split_search[$i]); 
                     $match_word = stripslashes(trim($match_word)); 
                     $sql = "SELECT m.post_id 
                     FROM ".POSTS_TEXT_TABLE." w, ".POSTS_TABLE." m 
                     WHERE MATCH w.post_text AGAINST ('$match_word') 
                     AND w.post_id = m.post_id";

#
#-----[ FIND ]------------------------------------------
#
                     $match_word =  addslashes('%' . str_replace('*', '', $split_search[$i]) . '%'); 
                     $search_msg_only = ( $search_fields ) ? "OR post_subject LIKE '$match_word'" : ''; 
                     $sql = "SELECT post_id 
                        FROM " . POSTS_TEXT_TABLE . " 
                        WHERE post_text LIKE '$match_word' 
                        $search_msg_only";

#
#-----[ REPLACE WITH ]------------------------------------------
#
                      $match_word = str_replace('*', '%', $split_search[$i]); 
                      $match_word = stripslashes(trim($match_word)); 
                      $search_msg_only = ( $search_fields ) ? "OR post_subject LIKE '$match_word'" : ''; 
                      $sql = "SELECT post_id 
                        FROM " . POSTS_TEXT_TABLE . " 
                        WHERE MATCH post_text AGAINST ('$match_word') $search_fields";
                                                                                                
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM
Naja, bis demnächst!

LG, IPB_Flüchtling
Benutzeravatar
cYbercOsmOnauT
Ehemaliges Teammitglied
Beiträge: 3820
Registriert: 18.02.2004 23:02
Wohnort: Göttingen
Kontaktdaten:

Beitrag von cYbercOsmOnauT »

Ich merke gerade, ich sollte nachts nicht posten. :D Die Funktion ist natürlich in der functions_search.php zu finden und nicht functions_post.php. In der Zweiten wird sie aufgerufen.

IFB_Flüchtling: Kommentier lieber die Zeile in der functions_post.php aus, die diese Funktion aufruft.

Code: Alles auswählen

add_search_words('single', $post_id, stripslashes($post_message), stripslashes($post_subject));
Die Abfrage des SEARCH_WORD_TABLE findet jedenfalls nur an einer Stelle des search.php statt und diese wird vom Mod von fanrpg verändert. Also für meine müden Augen sollte es keine Probleme geben, wenn Du die Funktion deaktivierst. (Und falls doch kannste es ja mit Database Maintenance wieder geradebiegen ;)).

Grüße,
Tekin
• prof. phpbb-Installation, Reparatur, Rettung nach Hackattacken, sowie PHP/JS Programmierung aller Art
Zend Certified Engineer, Linux Administrator und die Sicherheit von 34 Jahren Programmiererfahrung
• Interesse? Kontakt unter t.birduezen@web-coding.eu
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“