left arrowBack
Mindaugas Zukas

Mindaugas Zukas

February 16, 2012 ・ Sphinx

SphinxSearch kill list feature

In using the SphinxSearch sql_query_killlist I am faced with a problem - the kill list doesn't always work as expected for several distributed indexes.

I found the cause of this problem in the order of the physical indexes within the distributed index.

Lets say we have a main index which contains the majority of the data and updates once a day. And we have delta index which contains the latest changes and updates every 3 minutes.

In order to ignore the old records in the main index we need to add a kill list into the delta index. The kill list should select the IDs which you want to remove from the delta index.

The problem is that the kill list will take effect only if the delta index is placed after the main index, so in a nutshell the kill list removes all IDs from all preceding indexes.

The correct index definition using a kill list should look like this:

index dist
   type = distributed
   local = main
   local = delta
  • Sphinx