如何理解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?

阅读 4.2k
2 个回答

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

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

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

麻烦问一下
1、对于中文字段的修改操作 如何能实时搜索到
2、rt 索引我试着不能搜索中文吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题