2010-11-29 10 views
3

Das ist ziemlich seltsam. Ich habe 3 Modelle (A, B, C). Wirkt perfekt, wenn Crontab es ausführt.Denken Sphinx nicht bestimmte Modelle indexieren

Vor kurzem wurde ich habe Probleme mit der Indizierung neue Einträge für das Modell A.

Wenn ich rake ts:index RAILS_ENV=production manuell aufrufen, Indizierung läuft gut. Kein Fehler, Problem. Aber nur Modell B, C wird aktualisiert. Modell A wird nicht aktualisiert. Ich habe alle Protokolle überprüft, es gab kein Problem.

Hier searchd.log:

[Mon Nov 29 15:02:27.920 2010] [ 7280] rotating indices (seamless=1) 
[Mon Nov 29 15:02:28.211 2010] [ 7280] rotating index 'b_core': success 
[Mon Nov 29 15:02:28.215 2010] [ 7280] rotating index 'c_core': success 
[Mon Nov 29 15:02:28.216 2010] [ 7280] rotating finished 

Hier werden Sie feststellen, a_core nicht angezeigt. All dies während es gut funktionierte. Als ich sah, dass es lief, indexierte es A, aber als ich meine sphinx db nach der letzten Aktualisierung überprüft hatte, wurde es nicht aktualisiert. Erlaubnis für alle Sphinx db ist alle gleich.

Die einzige Möglichkeit, die Indizierung läuft gut ist, alte Sphinx db zu entfernen, und rufen Sie eine ganze ts:rebuild. Ich habe nicht versucht, die production.sphinx.conf obwohl zu entfernen.

Ich habe versucht, Delta-Indizierung in der Vergangenheit hinzuzufügen, bevor dies geschah. Nun, Delta-Indizierung konnte irgendwie nicht funktionieren, aber die normale Indizierung war in Ordnung. Dann brach die Indizierung für Modell A. Ich wusste nicht, dass es trotzdem kaputt ging. Dann habe ich die Delta-Indizierung ausgeschaltet, ohne die Spalte zu entfernen. (Ich wusste immer noch nicht, dass die Indexierung für Modell A gut lief). Dann habe ich heute herausgefunden, dass es ein Problem mit der Indexierung von Modell A gab. Also dachte ich, vielleicht habe ich die Delta-Spalte in meiner Datenbank nicht entfernt. Also habe ich die Spalte entfernt, MySQL, Apache neu gestartet und das Modell A wird immer noch nicht aktualisiert.

Ich glaube eigentlich nicht, dass es etwas mit Delta Indizierung zu tun hat. Weil ich hinzugefügt habe, dann entfernte Delta Indizierung für alle A, B, C-Modelle. Wenn es brechen sollte, sollte es alle statt nur eines Modells brechen.

Bitte helfen. Vielen Dank.

EDIT Modell A

# ThinkingSphinx Index 
    define_index do 
    indexes :name, :sortable => true 
    indexes address 
    indexes city 
    indexes state 
    indexes country 
    indexes spot_type 
    indexes season 
    indexes description 
    has rating_average 

    # set_property :delta => true 
    end 

Modell B

# ThinkingSphinx Index 
    define_index do 
    indexes name 
    indexes duration 
    has budget, created_at, rating_average 

    # set_property :delta => true 
    end 
+0

Zeigen Sie uns, wie Sie Index auf A und B definieren. – tjeden

+0

@tjeden - Bitte sehen Sie meine Updates. Vielen Dank. – Victor

Antwort

0

Es stellte sich heraus, lief mein Server an Speicherplatz aus. Modell A-Index ist sehr viel größer als andere Modelle. Obwohl die Indizierung erfolgreich war, konnte sie nicht auf den Datenträger schreiben (obwohl kein Fehler ausgegeben wurde). Aber als ich immer wieder versuchte, mehr und mehr Inhalt zu Modell A hinzuzufügen und den Neuaufbau fortsetzte, zeigte sich das Problem mit dem Speicherplatz.

Also habe ich meine Festplattengröße erhöht. Jetzt ist es in Ordnung.