2017-02-24 4 views
0

Ich habe eine Konfigurationsdatei, die eine lange Zeit braucht, um mit dem Indexer zu drehen, dies zu tun, z.Rotierende vs Neustart Sphinx

indexer --config /home/indexer/MyConfig.conf.php --rotate idx_Big 

Ich kann damit leben aber manchmal, wenn ich eine aktualisierte Konfiguration testen wollen, dass es entweder brechen könnte oder nicht die gewünschten Ergebnisse liefern. In der Regel, was ich tue, dann ist

  1. Revert die Config wieder auf die ursprünglichen Arbeitseinstellungen
  2. Index/Drehen wieder

Allerdings frage ich mich, wenn ich nur die ‚guten‘ Index kopieren aus das Verzeichnis sphinx greift auf (zB root), indiziert/rotiere das neue und dann, wenn mir die Ergebnisse nicht gefallen, kopiere das neu indexierte idx mit dem einen I, anstatt eine weitere Stunde lang index/rotiere zurück zum alten index im Root gespeichert und dann gestoppt/neu gestartet zB

/usr/bin/searchd -c /home/indexer/MyConf.php --stop 
/usr/bin/searchd -c /home/indexer/MyConf.conf.php 

Ja ich bekomme, dass das Conf wird immer noch derjenige mit den Änderungen, die ich nicht mag, aber die größere Frage ist immer noch relevant für meine persönliche Situation; Kann ich einen Index, den ich mit einer gespeicherten Version gedreht habe, ersetzen und neu starten, um dorthin zurückzukehren, wo ich war, oder muss ich die alten Einstellungen indizieren/drehen, um dies zu tun?

Antwort

0

Ja, Sie können dies tun.

  1. Wenn der Index Kopieren aus, am besten nicht die .spl (Schloss) Datei kopieren. Wenn man das zurückkopiert, könnte das Sphinx verwirren.

  2. Auch idealerweise ist es die beste Kopie der Index zurück in den Sphinx-Ordner, während searchd ist abgeschaltet. Das Überschreiben der Indexdateien könnte sphinx verwirren und/oder zum Absturz bringen. Keine große Sache, wie Sie es stoppen wollen, und kümmern Sie sich nicht klar über den Index, aber am besten weniger Chance von verwirrenden Nebenwirkungen.

Wenn ....

  • die den alten Index zurück, mit append kopieren konnte nur sein Phantasie wollte '.new' auf den Indexnamen (zB index.spd wird index.new.spd), anstatt die aktiven Dateien zu überschreiben und dann das gesendete Signal sighup zu senden. Searchd wird dann diese neue Version laden (die eigentlich nur die alte Version ist) - nahtlos. Dies ist die gleiche Verwendung von rotate, um eine neue Version in searchd zu laden, und zwar "manuell".
0

Muss ich die alten Einstellungen indizieren/drehen, um dies zu tun?

Sie können testen, ob es funktioniert. Ich weiß nicht, Sphinx, scheint aber einfach:

  1. Stoppen Sie den Sphinx Programm/Service.
  2. Verschieben Sie den Indexordner zu dem, was Sie möchten.
  3. Sichern Sie Ihre Standardkonfigurationsdatei, an die Ihr Indexordner gebunden ist.
  4. Erstellen Sie die neue Konfigurationsdatei, die Sie testen möchten.
  5. Starten Sie die Sphinx zum Testen, wie Sie es wünschen.

Nach wenn Sie mit Ihren Backup-Einstellungen zurück zu gehen, ist der Prozess ähnlich:

  1. Stoppen Sie den Sphinx Programm/Service.
  2. Löschen Sie den Indexordner.
  3. Stellen Sie den Indexordner an dem Ort wieder her, an dem Sie ihn zuletzt abgelegt haben.
  4. Stellen Sie die Sicherungskopie Ihrer Standardkonfigurationsdatei wieder her, wo sie ursprünglich hingehört.
  5. Starten Sie die Sphinx zum Testen, wie Sie es wünschen.

Nun sollten Sie nicht noch einmal eine Stunde der Sphinx indizieren warten müssen, wie Sie alles an seinem Platz gestellt. Die Anwendung sollte sich Ihrer schnellen Ninja-Züge nicht bewusst sein.

Wenn es nicht funktioniert, Sphinx ist wahrscheinlich ändern Sie andere Dateien als Sie Backup sind.