Sunspot-Index nur, wenn sich durchsuchbare Felder ändern

8

Wir verwenden in unserem neuesten Projekt Sonnenflecken für die Suche. Wir verwenden auch Geräte und indexieren unser Benutzermodell wie folgt:

%Vor%

Mit dieser Konfiguration kann sich ein Benutzer nicht einmal anmelden, es sei denn, solr läuft gerade. Dies bedeutet, dass bei jedem Speichern des Benutzermodells eine Kommunikation zu unserem solr-Server stattfindet (Neuindizierung?), Selbst wenn sich keines der durchsuchbaren Felder geändert hat. Ist das korrekt?

Wir haben auch viele andere Modelle, die von Sonnenflecken indiziert werden, die nicht durchsuchbare Felder haben, die häufig aktualisiert werden. Es scheint, als ob der Sonnenfleck sie bei all diesen Updates neu indiziert.

Gibt es eine Möglichkeit, den Sonnenfleck so zu konfigurieren, dass er sich nur mit solr verbindet, wenn sich ein durchsuchbares Feld ändert?

    
ghempton 18.05.2011, 06:01
quelle

1 Antwort

12

Ich nehme an, Sie haben die neueste Version von Sonnenfleck gem.

  1. Sunspot indiziert jedes Mal neu, wenn sich das Modell geändert hat. Um dieses Verhalten zu optimieren (siehe Optionen für durchsuchbare ):

    suchbar: ignore_attribute_changes_of = & gt; [: durchschnittliche_Rate,: Permalink] tun     Text: Titel   Ende

    Sieh dir den Quellcode an: Ссылка

  2. Ihre Seite sollte noch bis zur ersten Anfrage an solr funktionieren:

    • entweder eine Volltextsuche

    • entweder eine Indizierungsanforderung

    Sie führen wahrscheinlich bei jeder Anmeldung eines Benutzers eine Aktualisierung des Benutzermodells durch und lösen daher eine Neuindizierung aus.

Weitere Tipps:

  • Tatsächlich ist es nicht die Indizierung, die viel Zeit in Anspruch nimmt, es ist der Commit-Befehl; Der Commit-Befehl wird standardmäßig am Ende jeder Webanforderung ausgegeben. Dies ist in einer Produktionsumgebung sehr teuer. Ich rate Ihnen zu ändern Sie die Richtlinie zu automatisch nach X Sekunden ;

  • Wenn Sie möchten, dass Sie Ihren Sunspot so anpassen möchten, dass Ihre Site im Falle eines Serverausfalls funktioniert, sollten Sie sich dieses Juwel ansehen, das die Serverschnittstelle für den Test env: sunspot_matchers

Vlad Zloteanu 18.05.2011, 16:56
quelle