如何理解sphinx搜索的rt索引 及 rt实时索引的应用场景

SphinxSearch的rt索引可以这样理解吗?

假设前提:
一个微博平台,帖子都是存入到Mysql,搜索时候使用sphinx搜索。

1)rt索引是什么情况下会进行使用,是否可以这样理解,发布微博的时候,程序写入到Mysql的同时,插入到Sphinx的rt索引中?还是说 程序只负责写入MYSQL,然后crontab定时执行 indexer --all --rotate更新到Sphinx索引中?但这样rt索引一直都用不上?

2)rt索引中的数据是什么进行清除,是否需要清除?还是每次重启Sphinx会自动清除rt索引内容?

3)当MySQL有新记录数据写入的时候,是如何更新到Sphinx中。只能执行indexer --all --rotate进行把MySQL的数据更新到Sphinx中吗?但这样会有很大延迟,导致数据延迟。还是说相反,先写入到Sphinx rt索引,再用脚本读取再写入到MySql?


九州编程
浏览 497回答 1
1回答

慕容3067478

rt索引其实就相当于一个在内存的数据表。更新mysql的同时更新rx索引。当然也可以使用队列在后面跑更新。rt索引应该不会在启动的时候清除,需要自己执行 TRUNCATE RTINDEX rt_index 可以参考stackoverflow第三个问题应该是关于增量索引的问题。一般每天更新一个全量索引,然后当天的数据变化的更新通过增量索引实现。比如数据表有一个update_time字段(假设删除只是软删除),则每次获取 update_time大于最后创建全量索引的时间 的数据更新增量索引。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python