Seite 1 von 1

phpBB-Suche findet kein BB-Code -- wie mach ich das?

Verfasst: 23.05.2007 22:27
von Ilinsekt
Hallo zusammen,

ich sitze gerade an einem Projekt, das einen Code verwendet, der dem BB-Code nicht unähnlich ist und das auch eine Suchfunktion bekommen soll. Jetzt habe ich eine Frage: Wenn ich in phpBB z.B. nach color suche, gibt er mir nur die Beiträge aus, wo color im normalen Text vorkommt, BB-Code ignoriert er. Wie ist das gelöst? Ich habe mir die search.php und die functions_search.php angeguckt, aber entweder steht da wirklich nichts darüber drin oder ich bin viel zu n00b.

Natürlich könnte ich das auch so machen, dass der das in MySQL sucht und dann in PHP den BB-Code entfernt und noch mal sucht, das wäre aber ziemlich prozessorzeitaufwendig. Ich bin mir sicher, dass es in phpBB anders gelöst ist, aber wie?

Mfg, Ilinsekt

Verfasst: 25.05.2007 08:13
von killerbees19
phpBB verwendet einen Wortindex. In der Spalte phpbb_words wird jedes Wort, das geschrieben wird gespeichert. Dadurch sieht phpBB gleich ob es überhaupt Treffer für diese Suchanfragen gibt.


MfG Christian

Verfasst: 25.05.2007 09:44
von gn#36
Wenn du soetwas selbst implementieren willst, dann kannst du beim Eintragen der Texte in die Datenbank den Text von den bbCodes befreien, und dann den Text indizieren und auf diese Weise sicherstellen dass die bbCodes nicht im Suchindex landen. Die Indizierung kannst du so weit treiben, dass du Beiträge mit Suchworten verknüpfst, die im Text des Beitrags gar nicht (oder gar nicht mehr) vorkommen und den Beiträge so quasi "Tags" zuordnen.

Verfasst: 25.05.2007 15:12
von Ilinsekt
Danke, werd mal gucken wie ich das mache.

@killerbees19: phpbb_words ist, wie mir scheint, die Tabelle für die zensierten Wörter. Das, was du gemeint hast, wäre phpbb_search_wordlist.

MfG, Ilinsekt

Verfasst: 25.05.2007 15:18
von killerbees19
Ilinsekt hat geschrieben:@killerbees19: phpbb_words ist, wie mir scheint, die Tabelle für die zensierten Wörter.t
Tschuldigung :oops:
Stimmt. Wenn man dauernd mit anderen Systemen zu tun hat, verwechselt man leicht die Tabellennamen :lol:


MfG Christian