PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Forum (Frage erledigt) Problem mit der Suchfunktion



joggele
24.10.2013, 23:48
Hallo zusammen,

nach dem zwangsweisen Neuaufsetzen des Servers Anfang diesen Jahres haben wir in unserem Forum das Problem mit der Suchfunktion (V4.2.1.PL1). Die Suche nach Begriffen gibt nur noch einen Bruchteil an Ergebnissen zurück.

Ein Beispiel zur Verdeutlichung (Zahlen sind frei erfunden!): Vor dem Neuaufsetzen des Servers hatten wir z.B. mit dem Begriff "Motorrad" 750 Treffer. Jetzt sind es nur noch 15.

Was ich damit sagen möchte: die Unterschiede sind drastisch!

Was muß ich tun, damit die Suchfunktion wieder voll einsatzfähig ist?


Grüssle
Jürgen

PS: die Datenbank wurde umbenannt, die Tabellen haben noch die gleiche Benennung. Alles unter "Datascore Cache" und "Cookies" habe ich mit Hilfe von tools.php bereits durchgeführt.

hjmaier
25.10.2013, 06:25
Hast Du schonmal den Suchindex neu aufgebaut?
darmsanierung zentrum-der-darm.info (http://www.zentrum-der-darm.info)

s.molinari
25.10.2013, 06:30
Genau, versuche die Suchindex neu aufzubauen. Die Funktion ist in der Wartungsbereich im Admin-Kontrollzentrum. Wenn deine Datenbank groß ist, kann es auch eine Weile dauern.

Scott

joggele
25.10.2013, 07:44
Hallo,

den Suchindex habe ich bereits mehrmals aufgebaut. Keine Änderung!

Wenn ich es richtig verstanden habe basiert die Suchfunktion doch auf Grundlage einer Volltextsuche. D.h. es wird ein SQL Befehl abgesetzt, der den Suchbegriff in Form von "... LIKE '%Suchbegriff%'" auf den entsprechenden Tabellen sucht. Der Suchindex dient in MySQL doch lediglich nur dazu, dass die Suche schneller durchläuft.


Grüssle
Jürgen

s.molinari
25.10.2013, 08:16
Wenn der Suchindex nicht da ist oder nicht richtig aufgebaut ist, dann funktioniert die Suchfunktion definitiv nicht richtig.

Bitte starte ein Ticket (http://members.vbulletin-germany.com/membersupport_contactform.php) mit Zugangsdaten zum Forum und PHPMyAdmin. Wir schauen das mal genauer an.

Scott

Jaydee
25.10.2013, 09:10
Der Suchindex dient in MySQL doch lediglich nur dazu, dass die Suche schneller durchläuft.



Nein. Bitte nicht den Tabellen-Index in MySQL mit dem Index der MySQL-Volltextsuche in vBulletin verwechseln.
Im ersten Fall hast Du Recht, der Index wird für die DB benötigt und beschleunigt generell die Abfragen.
Im zweiten Fall aber funktioniert die vB-Suche gar nicht erst ohne Index, bzw. es würden nur sehr allgemeine Begriffe und solche neu erstellter Postings etc. gefunden.

Die Wahlmöglichkeit der alten vB-Suche gibt es schon länger nicht mehr, es läuft nun alles über Volltextsuchen und diese benötigen einen eigenen Search-Index innerhalb der DB. Früher konntest Du auch einstellen, WIE und WAS die SuFu suchen & finden soll.

Stelle unter den Suchmaschinen-Einstellungen den Wert "Suchindex bei Änderungen verzögert aktualisieren" auf "nein" und kontrolliere auch die maximalen Treffer wie auch die MIN und MAX-Länge der Keywords.
Beim Index-Erstellen stelle den Typ auf "Alles" sowie die ID und Elemente jeweils auf "0", damit alles erfasst wird.
Anschließend den Index nochmals neu erstellen lassen.

Wenn auch das alles nichts bringt, liegt es an den Einstellungen des neuen MySQL-Servers und die Werte müssen in der my.ini geändert werden.
Zu berücksichtigen ist auch, dass der Index einige Zeit braucht, um sich "einzuspielen"(in großen Foren kann das durchaus 2 Tage dauern!). Bis dahin wird ggf. noch nicht alles problemlos gefunden.

pogo
25.10.2013, 09:19
Wie viele Datensätze enthält die Tabelle searchcore?
Die Anzahl sollte größer (oder mindestens gleich) der Zahl der Beiträge (198.199) sein.

joggele
25.10.2013, 18:44
Die Tabelle searchcore enthält 95.979 Datensätze
Die Tabelle post enthält 199.840 Datensätze

Ich werde jetzt mal die beschriebenen Schritte von Jörg durchführen.


Grüssle
Jürgen

joggele
25.10.2013, 20:18
Sodele,

alles von Jörg erstmal berücksichtigt und der Suchindex wird nun erstellt. Das wird wohl ein paar Stunden/Tage dauern. Ich melde mich dann wieder und teile den Erfolg/Nicht-Erfolg mit.

Danke an alle bisher, die mir mit diesem Problem geholfen haben! Sehrt wertvolles Forum mit kompetenten Ansprechpartnern.


Grüssle
Jürgen

PS: @Jörg: wie sollten die Werte in der my.ini gestzt sein? Das könnte ich parallel dazu schon mal prüfen ...

joggele
25.10.2013, 21:41
Shit!


The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, root@xxx.stratoserver.net and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.
Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.


Das error.log vom apache meint:

[warn] mod_fcgid: process 570 graceful kill fail, sending SIGKILL

Und nu? :(


Grüssle
Jürgen

joggele
25.10.2013, 22:16
Versuche es gerade, wie im ACP empfohlen, über die command-Zeile (php serarchindex.php) direkt auf dem Server. Suchindex für Foren ist erledigt. Jetzt laufen die Beiträge.


Grüssle
Jürgen

s.molinari
26.10.2013, 06:48
Supi! Gute Arbeit. Ich bin froh, dass du es geschafft hast.

Scott

joggele
26.10.2013, 09:46
So, hier wieder ein paar Eckdaten:

Ich habe die Anzahl der Elemente, die pro Durchgang bearbeitet werden sollen, auf 500 gesetzt, weil mir die Standardeinstellung mit 10.000 etwas zu hoch erscheint. Pro Durchgang werden hierfür nun rund 47 Sekunden benötigt. Das bedeutet, das für alle rund 199.000 Beiträge ca. 5 Stunden Laufzeit zu rechnen sind.

Das Problem ist, das meine Verbindung zum Server nicht so lange offen bleibt. Somit hat er jetzt über Nacht lediglich 117.500 Elemente verarbeitet, bevor die Verbindung geschlossen wurde.

Zum Glück kann man die ID als Parameter vorgeben, mit der begonnen werden soll. Also das Programm nochmal gestartet und die ID auf 117.500 voreingestellt und dabei noch angegeben, das er (nicht wie beim ersten Lauf) den Suchindex nicht löschen soll. Stand jetzt: 126.500


Grüssle
Jürgen

Jaydee
26.10.2013, 11:15
Hallo Jürgen,




PS: @Jörg: wie sollten die Werte in der my.ini gestzt sein? Das könnte ich parallel dazu schon mal prüfen ...

Das kommt auf Deine Wünsche an, die Begrenzung im vB-ACP greift immer nur innerhalb der MySQL-Settings des Servers.
Du kannst beispielsweise eine MIN-Länge von 3 Zeichen und MAX auf ca. 20 Zeichen setzen, das reicht üblicherweise. Mit 3 Zeichen würde beispielsweise auch ARD/ZDF, BMW, WDR, CDU usw. gefunden.
Umgekehrt kann es nicht funktionieren, wenn vB zwar 3 Zeichen, der Server aber erst ab 4 Zeichen aufwärts eingestellt hat.

Die MAX Länge richtet sich danach, welche langen Begriffe Du noch indiziert haben möchtest.
Wenn Du "Kernkompetenzneutronenfluxkompensator" noch gefunden haben willst, muss die Begrenzung entsprechend groß ausfallen (möglichst noch ein Zeichen darüber). :D

Zu berücksichtigen ist dabei, dass mit steigender Spanne natürlich auch der Index entsprechend (viel und evtl. unproportional) größer wird - und auch dessen Erstellung entsprechend länger dauert.





Das Problem ist, das meine Verbindung zum Server nicht so lange offen bleibt. Somit hat er jetzt über Nacht lediglich 117.500 Elemente verarbeitet, bevor die Verbindung geschlossen wurde.

Zum Glück kann man die ID als Parameter vorgeben, mit der begonnen werden soll. Also das Programm nochmal gestartet und die ID auf 117.500 voreingestellt und dabei noch angegeben, das er (nicht wie beim ersten Lauf) den Suchindex nicht löschen soll. Stand jetzt: 126.500



Richtig, genau so wirds gemacht. Sollte nun funktionieren. :) Das ist auch der Sinn der ID-Vorgabe.

joggele
26.10.2013, 12:40
Erledigt!

Hier nochmal eine Abbildung, wie es aussieht, wenn searchindex.php (commando Zeile) gestartet wird:

php searchindex.php
Bitte geben Sie den Pfad zu Ihrem vBulletin-Verzeichnis ein: /xxx/xxx/xxxxx/

Suchindex neu erstellen
-----------------------
Hinweis: Wenn Sie den Index neu erstellen, sollten Sie den bestehenden vorher löschen. Suchindex löschen
Suchindex löschen [0/1,Standard=0]:

0) Alle
3) Foren
1) Beiträge
7) Gruppen
5) Gruppenbeiträge
11) Pinnwandeinträge
24) Artikel
26) Statische HTML-Seiten
29) Linklist-Einträge
Suchindex wählen [Standard=0]:

Datenbank-Indexe während der Erstellung des Suchindexes deaktivieren [0/1,Standard=0]:

ID, mit der begonnen werden soll [Standard=0]:
Anzahl der Elemente, die pro Durchgang verarbeitet werden sollen [Standard=10000]: 500

Erstelle Suchindex Foren ...
IDs 0-191 ...

Wie geschrieben:
beim ersten Lauf habe ich das Löschen des Suchindexes ausführen lassen (Auswahl: 1)
den 2. Lauf habe an der Stelle gestartet, an der es wg. dem Zeitlimit abgebrochen war (ID, mit der begonnen werden soll)
Anzahl der Elemente habe ich mit 500 vorgegeben. So sieht man wenigstens, dass das System etwas arbeitet

208.336 Indexe wurden nunmehr für unser Forum erstellt. Die Suchergebnisse sehen wesentlich besser aus! Jetzt lasse ich dem System und dem Suchindex noch ein paar Tage Zeit, um sich "einzuspielen" wie Jörg ein Stück weiter oben geschrieben hat.

An dieser Stelle nochmals mein Dank an die Mitwirkenden.


Grüssle
Jürgen