索引合并的Sphinx手册says应该保留旧关键字和新关键字:
但请注意," old"在这种情况下,关键字不会自动删除。例如,如果有关键字" old"与DSTINDEX中的文档123相关联,以及关键字" new"在SRCINDEX中与它相关联,合并后两个关键字都将找到文档123。
我无法重现这一点。
main
indexer --rotate delta
indexer --rotate --merge main delta
searchd
重新加载索引SELECT id FROM main WHERE match('two')
查找文档1,但match('one')
找不到任何内容。两个索引的来源基本上定义为:
sql_query = SELECT id, text FROM tbl
我还尝试通过sql_joined_field
指定关键字,合并也不会保留旧关键字。
这是否意味着手册错了?假设如果SRCINDEX具有ID(属性和文本关键字)的信息,合并过程将丢弃DSTINDEX对该ID的所有内容并将其替换为新信息,这是否安全?
答案 0 :(得分:2)
我问安德烈·阿克森诺夫(狮身人面像的创造者)这件事。他说,如果索引docinfo是extern,他们现在会在合并时清除重复的id。
是的,这是文档中的错误。
答案 1 :(得分:0)
如果Sphinx在从搜索结果中删除时发现了重复的ID,那么Sphinx只返回唯一ID。 这就是为什么你没有在搜索结果中看到它们。