PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MySQL Volltextsuche taugt nichts?


Savage
18.07.2007, 20:56
Hallo!

Ich habe ein VB Forum 3.6 mit ca. 2.5 Millionen Posts. Ich habe nun auf Volltextsuche umgestellt, da es bei großen Boards empfohlen wird und die DB nicht so stark belastert wie die vB eigene Suche.

Allerdings beschweren sich die Benutzer nun, das viele Sachen die früher gingen, jetzt nicht mehr gehen.

1. Wildcards gehen nicht: Jemand möchte alle Threadtitel mit nach dem Datum 18.07* durch suchen -> keine Ergebnisse. Kann man Wildcards nicht mehr einsetzen ?

2. bei manchen Begriffen, die weder kurz noch lang sind wie z.B. texmod wird nichts mehr gefunden, obwohl fürher wohl einige Threads gefunden wurden.

Liegt es an der Volltextsuche? Oder ist das eine Einstellungssache?

Hier noch einpaar Einstellungen der DB:

ft boolean syntax + -><()~*:""&|
ft max word len 84
ft min word len 4
ft query expansion limit 20
ft stopword file (built-in)

viele Grüße
Eduard

Savage
18.07.2007, 21:40
Ich habe jetzt die Boolsche Suche aktiviert und nun scheinen die Wildcards zu gehen, jedoch ist das Suchergebniss unbrauchbar.

Zum Suchbegriff findet er zwar die Titel die "18.07" enthalten, aber auch all die Threads die ein 07 enthalten. Kann man die Suche nicht besser einschränken?

Wenn ich im MySQL mittels %18.07% den Titel durchsuche bekomme ich mehr Treffer als in der Suche und mindestens 30 Treffer die auch das Datum enthalten. In der Forumsuche bekomme ich nur 3 verwertbare Treffer.

Also irgendwie scheint es so zu sein, dass die vB eigene Suche mehr taugt oder?

Odysseus
18.07.2007, 22:39
Die Volltextsuche ist meiner Ansicht fürn... du weißt schon. ;)
Das liegt aber nicht an vBulletin, sondern an der zugrundeliegenden Technik von MySQL bzw. der MyISAM Storage Engine.

Die Probleme, die das Ding praktisch unbenutzbar, insbesondere für größere Boards, machen:
1. Die Suche ist nur schnell, wenn der gesamte Index in den Speicher passt. Das kannst du bei 2,5 Mio Posts vergessen.
2. Während die Suche läuft, wird die Tabelle "Posts" gelockt. Das heißt, dass in der Zeit keine neuen Beiträge eingetragen werden können.

Wenn beide Punkte zusammen kommen, wird das Forum praktisch unbenutzbar, wenn irgend jemand eine Suche startet.

Eine echte Lösung gibt es nicht, man kann die Sache nur mit Hardware erschlagen. Es gibt da ja diese Option, dass man den Suchindex auf einem zweiten Server repliziert. Suchen werden dann auf diesem gestartet und belasten somit das Master-System nicht so stark. Ob das aber funktioniert und wie gut das ist, kann ich nicht beurteilen.