我目前正在使用Sphinx索引具有2000多万条记录的MySQL查询.
我使用delta索引来更新主索引并添加所有新记录.
不幸的是,删除了对表的所有更改.
我知道我可以使用sql_query_killlist来获取需要删除或更新的所有文档ID.不幸的是,我不明白这实际上是如何工作的,而且Sphinx的文档没有一个足够好的例子供我理解.
如果我使用以下示例,我该如何实现killlist?
在MySQL中
CREATE TABLE sph_counter
(
counter_id INTEGER PRIMARY KEY NOT NULL,
max_doc_id INTEGER NOT NULL
);
Run Code Online (Sandbox Code Playgroud)
在sphinx.conf中
source main
{
# ...
sql_query_pre = SET NAMES utf8
sql_query_pre = REPLACE INTO sph_counter SELECT 1, MAX(id) FROM documents
sql_query = SELECT id, title, body FROM documents \
WHERE id<=( SELECT max_doc_id FROM sph_counter WHERE counter_id=1 )
}
source delta : main
{
sql_query_pre = SET NAMES utf8
sql_query = SELECT id, title, body FROM documents \ …Run Code Online (Sandbox Code Playgroud)