PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Forum Suchindex erstellen - dauert ewig - andere Möglichkeiten?



Diuns
15.02.2010, 14:29
Hallo,

ich versuche auf unserem Testserver nach Update auf vB Version 4.0.1 den Suchindex neu zu erstellen.
Leider dauert das enorm lange, 1000 Posts brauchen im Durchschnitt mind. eine Minute, bei dem Forum mit 1,1 Mio Beiträgen dauert es also ca. 18,3 Stunden...
Ist das normal? Gibt es andere Möglichkeiten / externe Scripts um den Suchindex schneller zu erstellen?

Grüße

Mystics
15.02.2010, 15:06
Schaue dir mal die Datei searchshell.php im Verzeichnis do_not_upload an.

Diuns
15.02.2010, 16:23
Funktioniert leider nicht. Nach Eingabe des Forums-Pfades kommt ein Fehler
Unable to parse URL in <strong>/var/www/fw-test/public_html/includes/class_core.php</strong> (Zeile <strong>2017</strong>)<br />Besagte Zeile 2017 der class_core.php ist folgende:

$url_info = parse_url(VB_URL);Starte ich mit dem Script dann trotzdem, von der Position, bis wohin ich vorher gekommen bin, sehen die Ausgaben des Scripts richtig aus, also "Bearbeite Beitrag: 1762984" usw... allerdings wird in der Datenbank nichts geändert!

Wähle ich im Script, dass der Suchindex vorher gelöscht werden soll, passiert nichts, ich erhalte lediglich eine Fehlerseite mit dem Datenbankfehler:

Datenbankfehler in vBulletin 4.0.1:

Invalid SQL:
DELETE FROM vbul_word;

MySQL-Fehler : Table 'fw-test.vbul_word' doesn't exist
Fehler-Nr. : 1146
Fehler-Zeit : Monday, 15.02.2010 @ 16:13:56
Datum : Monday, 15.02.2010 @ 16:14:45
Skript : http:///
Referrer :
IP-Adresse :
Benutzername : Unregistriert
Klassenname : vB_Database
MySQL-Version :


Über das admincp / Wartungsfunktion geht es aber, also bereits indexierte Beiträge kann man über die Suche auch finden - dauert nur sehr lange... Wurde das Script evtl. noch nicht aktualisiert, oder wo liegt der Fehler?

Mystics
16.02.2010, 11:02
Danke, ich habe es als Bug gemeldet.

Dann bleibt aktuell nur die normale Wartungsfunktion, die Geschwindigkeit ist auch nicht ungewöhnlich.

MrD
05.03.2010, 23:21
Hi Mystics,
weißt du näheres ob in der nächsten veröffentlichung die searchshell.php gefixt ist?

Mystics
07.03.2010, 13:43
Sieht nicht so aus, aber angeblich soll es doch funktionieren, man darf nur nicht "Suchindex löschen" auswählen.

Ändert sich in der searchcore Tabelle nichts?

MrD
07.03.2010, 20:19
Hi,
wie jetzt?
Einerseits soll man den Suchindex löschen, weil die kompl. Suche anders aufgebaut ist, und nu doch nicht?

Mystics
08.03.2010, 09:27
tools.php löscht den "alten" Suchindex, aber da es die Tabellen überhaupt nicht mehr gibt, gibt es eben nichts zum Löschen.

MrD
08.03.2010, 10:18
Hi,
irgendwie will das nicht klappen.
Der Aufruf der php dauert immer recht lange und führt zu einen Timeout bevor ich den Pfad eingegeben habe.
kann man z.b. den Verzeichnispfad nicht in der searchshell angeben?

Mystics
08.03.2010, 11:22
Hm, bevor man nicht den Pfad eingegeben hat, macht das Skript doch gar nichts.

Du kannst ja das ersetzen:
print ("Willkommen beim vBulletin-Skript zum Erstellen des Suchindexes\n");
print ("Wie lautet der Pfad zu Ihrem vBulletin-Verzeichnis? ");

$forumspath = fetch_stdin();

// keep looping until they enter a path which exists
while (!is_dir($forumspath))
{
print ("\n$forumspath ist ein ungueltiges Verzeichnis, bitte geben Sie es erneut ein ");
$forumspath = fetch_stdin();
}mit:
$forumspath = '/pfad/zum/forum';

MrD
08.03.2010, 14:12
Hi,
kann es sein das das ganze nicht mit Subdomains funktioniert?

$forumspath = '/srv/www/vhosts/domain/subdomains/test/httpdocs';

ist der Pfad zum VB4
Es kommt eine Ausgabe, das der Pfad falsch ist.

Ahja, wenn ich das orig. Script nehme, dann rennt er sich schon tot, bevor er die beiden Ausgaben schreibt.

Mystics
08.03.2010, 15:28
Ich habe das jetzt auch mal getestet. Wenn ich das Skript im vB-Hauptverzeichnis liegen habe, reicht auch ./ als Pfad.

Er zählt dann auch brav alle Beiträge hoch, in der Datenbank ändert sich aber nichts.

Es funktioniert nicht. Wir müssen warten, bis mein Bug-Report Beachtung findet:
http://www.vbulletin.com/forum/project.php?issueid=36210

MrD
08.03.2010, 18:08
Hi,
jo danke für die Mühe:)

MrD
09.04.2010, 21:03
Hi,
anscheinend hat niemand bei IB Interesse daran, das solche Grundlegende Dinge gefixt werden.

fade
20.04.2010, 11:45
Also ich wollte das ganze über die Wartungsfunktion des Forums machen und hab das jetzt 2 mal über Nacht laufen lassen, irgendwann in der Nacht bricht die Funktion immer ab.

Im Forum kann ich weder nach Beiträgen von Benutzern suchen (findet keine) noch freie Textsuche, also z.b. suche "Keyword"

Gibt es noch eine Möglichkeit außer zu warten bis IB sich dem Problem annimmt?

Das Script von Andreas werde ich mal antesten, hoffe ich bekomme das damit zum laufen.

PaintSplasher
22.04.2010, 00:24
Also ich hab jetzt das Script von Andreas, das im Bugtracker gepostet wurde, getestet.

Erstelle Suchindex, Foren ... Erledigt
Erstelle Suchindex, Beiträge .......

Bis dort dauerte es nun ca. 55 Minuten, es sind nur ca 1 Million Beiträge, gibt es irgendeinen Anhaltspunkt wie lang
das noch andauern kann? Das mit dem Suchindex macht mir ech zu schaffen... und nicht nur das, echt schlimm!

Edit.: Gibt es evtl. einen Anhaltspunkt wie gross die "searchcore" wird? (z.Zt. 57000 Einträge)

Edit2.: 01:50Uhr ~ 159.145 Einträge

Andreas
22.04.2010, 07:19
Hmm ... wieviele Objekte lässt Du denn pro Durchlauf verarbeiten?
Was für Hardware hast Du?

Ich habe das Script vorgestern mal auf einem kleinen "Server" getestet (Core2Duo, 4 GB, SATA RAID 1), hat für gut 6 Millionen Beiträge ca. 2h gedauert.

searchcore wird so groß wie alle deine Inhalte (Beiträge, Blog-Einträge, etc.) zusammen - also in dienem Fall ca. 1 Million.

PaintSplasher
22.04.2010, 12:51
Ich habe 10.000 Objekte pro Durchlauf angegeben wie es im Vorschlag stand, und über die Konsole mit "php script.php" gestartet. Getestet hab ich es unter Ubuntu, AMDX2 und 4 GB, sprich Lokal. Da es kein Serverprozessor ist kann es natürlich etwas länger dauern, aber doch nicht so lange. Bei ~546.000 Einträgen und rund 5 Std. hab ich aus gemacht, weil keine Lust mehr :D

Meine Serverumgebung später ist ein Xeon E5520 @ 2.27GHz mit 3 GB. Kann man das Script mit "fire and forget" vergleichen, oder
wird das Script beendet wenn die SSH Konsole geschlossen wird?

Andreas
22.04.2010, 17:56
Meine Serverumgebung später ist ein Xeon E5520 @ 2.27GHz mit 3 GB. Kann man das Script mit "fire and forget" vergleichen, oder
wird das Script beendet wenn die SSH Konsole geschlossen wird?
Es wird beendet wenn Du die SSH Konsole schließt.

Ich teste es gerade nochmal auf meinem Rechner hier (Pentium Dual-Core E5300, 2 GB) ... mal schauen wie lange 550K Einträge dauern.

Update 18:19h
550K Beiträge sind soeben fertig, hat ca. 18 Minuten gedauert.
Ich lass es mal komplett durchlaufen und posten dann wie lange es insgesamt gedauert hat.

PaintSplasher
22.04.2010, 19:52
Vielen Dank auf jedenfall für dein Feedback, ich teste es evtl. auch nochmal auf meinem Laptop der ist potenter :D

Wäre es evtl. möglich ne % Ausgabe(Durchlaufanzeige) einzufügen? Dieser blinkende Unterstrich macht mich immer Nervös *gg*

Andreas
22.04.2010, 20:06
Wäre es evtl. möglich ne % Ausgabe(Durchlaufanzeige) einzufügen?
Joa, sollte möglich sein - die aktuelle Version zeigt zumindest an wie lange ein Durchlauf gedauert hat :)