Es ist bei der Verwendung des Sphinx-Search-Servers im laufenden Betrieb jederzeit möglich numerische Indexattribute zu ändern. Hierfür wurde die Methode UpdateAttributes() geschaffen. Beim Testen fällt dann eventuell später auf, dass dies doch nicht so funktioniert wie geplant. Nicht verzagen: Möglicherweise ist der Eintrag attr_flush_period = 10 (#persist updates to disk every 10 seconds.) in der Konfigurationsdatei auf dem Server nicht gesetzt. Wenn der Eintrag nicht existiert, ändern sich die die Attribute im Index trotz API-Calls erst nach einem Neustart des searchd-Daemons.
In der API-Dokumentation findet sich folgende Beschreibung:
“When calling to update document attributes in real-time, changes are first written to the in-memory copy of attributes (docinfo must be set to extern). Then, once searchd shuts down normally (via SIGTERM being sent), the changes are written to disk. Introduced in version 0.9.9-rc1.
Starting with 0.9.9-rc1, it is possible to tell searchd to periodically write these changes back to disk, to avoid them being lost. The time between those intervals is set with attr_flush_period, in seconds.
It defaults to 0, which disables the periodic flushing, but flushing will still occur at normal shut-down.
Example:
attr_flush_period = 900 # persist updates to disk every 15 minutes”

wie genau funktioniert der live index update
Ich werd bald etwas darüber schreiben. Bis dahin:
http://sphinxsearch.com/docs/2.0.1/live-updates.html
http://sphinxsearch.com/docs/2.0.1/rt-indexes.html