Sphinx delta indexing — still necessary to rebuild the main index?

If I understand correctly, that means when a user adds or edits something, the change is not reflected in the index. So if they add a record it won't come up in searches until the entire index is rebuilt. Or if they delete a record, it will come up in searches, and then cause some kind of error or frustrating behavior.

Moreover, while rebuilding the index Sphinx is shut down You don't need to rebuild your indexes - just reindex them. Which means - there's no need to stop the daemon. Rebuilding is only needed after changing the structure of the index - and that is not the case here And for the second part - again, you don't rebuild the index, ergo stopping the deamon isn't necessary.

When using delta indexing there are actually two indexes that are used for searching - the main index (which should be reindexed once a while) and the delta index (which is refreshed after each relevant operation on the record). If I understand it correctly, when reindexing the main index (eg. Via cron task), the delta index is simply merged into the main index, so it won't take that much place and stay fast.

If I understand correctly, that means when a user adds or edits something, the change is not reflected in the index. So if they add a record it won't come up in searches until the entire index is rebuilt. Or if they delete a record, it will come up in searches, and then cause some kind of error or frustrating behavior.

Moreover, while rebuilding the index Sphinx is shut down. ... You don't need to rebuild your indexes - just reindex them. Which means - there's no need to stop the daemon.

Rebuilding is only needed after changing the structure of the index - and that is not the case here. And for the second part - again, you don't rebuild the index, ergo stopping the deamon isn't necessary. When using delta indexing there are actually two indexes that are used for searching - the main index (which should be reindexed once a while) and the delta index (which is refreshed after each relevant operation on the record).

If I understand it correctly, when reindexing the main index (eg. Via cron task), the delta index is simply merged into the main index, so it won't take that much place and stay fast.

2 When re-indexing the main index a full index is performed (ie. The delta isn't merged in any way). Besides that, your comment is spot on.

– James Healy Nov 23 '09 at 11:48 Yes, it's not physically merged, that's a bad wording. Thanks for pointing out. – Milan Novota Nov 23 '09 at 12:16 Also, it's worth noting - deletions are tracked (as much as possible) in Thinking Sphinx without needing delta indexes.

– pat Nov 24 '09 at 1:33 Note too that you need to reindex the delta whenever you reindex the main. Otherwise you will have entries in both indexes until the delta is reindexed (which effectively clears it out after a main reindex). – mlissner Sep 10 at 3:17.

You'll need to use the delayed delta approach for delta indexing - and have Delayed Job running on the same server as searchd and your index files. Delta indexing must be centralised, and this is the best way to manage it. Of course, if you're using a different job processing library (resque, workling, etc), it shouldn't be too hard to write your own version of ts-delayed-delta that behaves in the same way.

There is a gem for Workling and TS though - and maybe resque, possibly others.

I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.

Related Questions