Sphinx2.x is upgraded to Sphinx3, and Sphinx3.1.1 is installed on Win7 for testing. The removed data in the delta incremental index cannot be removed from the full index main. It is completely possible in Sphinx2.x.
Total 2 tables documents (id...) Sphinx (tb,id,type)
perform steps:
indexer.exe -c d:/sphinx3.conf --all -sharp
searchd.exe -c d:/sphinx3.conf & -sharp
-sharp documentsid=12id=1sphinx 2("doc",1,0),("doc",12,1)
-sharp
indexer.exe -c d:/sphinx3.conf delta --rotate
-sharp
indexer.exe -c d:/sphinx3.conf --merge main delta --merge-klists --rotate -sharp
the configuration file sphinx3.conf is as follows
source src1
{
type = mysql
sql_host = localhost
sql_user = root
sql_pass = 000000
sql_db = test
sql_port = 3306
sql_query = \
SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content \
FROM documents
sql_attr_uint = group_id
sql_attr_timestamp = date_added
}
source src1delta : src1 {
sql_query = \
SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content \
FROM documents WHERE id in (select id FROM sphinx where tb="doc" AND type=1 )
sql_query_killlist = SELECT id FROM sphinx WHERE tb="doc" AND type=0
sql_query_post = DELETE FROM sphinx WHERE tb="doc"
}
index main
{
source = src1
path = d:/sphinx3/data/main
}
index delta {
source = src1delta
path = d:/sphinx3/data/delta
kbatch = main
kbatch_source = id
}
index rt
{
type = rt
rt_mem_limit = 128M
path = d:/sphinx3/data/rt
rt_field = title
rt_field = content
rt_attr_uint = gid
}
indexer
{
mem_limit = 128M
}
searchd
{
listen = 9312
listen = 9306:mysql41
log = d:/sphinx3/log/searchd.log
query_log = d:/sphinx3/log/query.log
read_timeout = 5
max_children = 30
pid_file = d:/sphinx3/log/searchd.pid
seamless_rotate = 1
preopen_indexes = 1
unlink_old = 1
workers = threads
binlog_path = d:/sphinx3/data
}