为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

九州编程 2019-02-05 09:13:10
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?
查看完整描述

1 回答

?
慕容3067478

TA贡献1773条经验 获得超3个赞

rt索引其实就相当于一个在内存的数据表。更新mysql的同时更新rx索引。当然也可以使用队列在后面跑更新。

rt索引应该不会在启动的时候清除,需要自己执行 TRUNCATE RTINDEX rt_index 可以参考stackoverflow

第三个问题应该是关于增量索引的问题。一般每天更新一个全量索引,然后当天的数据变化的更新通过增量索引实现。比如数据表有一个update_time字段(假设删除只是软删除),则每次获取 update_time大于最后创建全量索引的时间 的数据更新增量索引。


查看完整回答
反对 回复 2019-02-21
  • 1 回答
  • 0 关注
  • 496 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信