无语的各种问题
升级Sphinx2.x 到 Sphinx3之后,就发现各种离奇古怪的事情。
对照着文档进行测试,发现这官方文档都说错误的。
1)官方说要写一个 sql_query_kbatch
可这个参数不管是写在 source 里还是index里,都只给你报错提示ERROR: unknown key name 'sql_query_kbatch'
,真的是吐血,官方文档都是错误的,却还一直这样写着。
2)关于增量索引
在Sphinx2中可以先生成delta增量索引,并且吧要删除的都放在里面,然后再将增量索引delta合入全量主索引main。无问题 !到了Sphinx3这里,真的是无语。在delta中只能新增增量索引,要么对main进行删除索引,而无法同时两个都操作,--merge-klists
这个参数也不存在了,不支持了。但是你如果将 增量索引delta
合入 全量主索引main ,那些在delta
中被killist的却再次被合入到了 main 中,真的是要吐血啊。
3)文档都没有,只能靠猜
Sphinx3 文档都没有完整版的,而Sphinx3里面还附带着Sphinx2的文档,但实际上Sphinx2文档中很多都是不存在的,写上去直接报错不识别。真的是无语。说明官方都懒得更新文档了
替代方法
写两个增量索引 delta 和 delta_merge ,delta中加入 killlist,而另外一个delta_merge 专门用来 合并新增的索引。但是测试结果很失望,依旧是合并的时候会将删除的索引再加进去。无语!!!!
猜测判断
Sphinx官方都已经不在维护了,Sphinx3.x的这些bug从2018年上半年就没更新过了,估计不会在更新了。
为何不使用ElasticSearch呢?ElasticSearch要求配置高,服务器成本高,所以选择Sphinx。
最后选择
Sphinx3.x 真没法用了,测试了几十遍,感觉这东西内层BUG还不是一两个,多执行几次命令就完全不对,合并也不会有数据,delta 里面的 kbatch 也不会去删减旧的索引,而官方基本上一种废弛状态。