感觉这样处理起来很花费时间,而且会造成线上数据不可用的情况,有没有好的办法呢?

由于我的sphinx索引比较大,每次创建都需要一两个小时,现在网站有人发垃圾信息和违禁信息。我已经在mysql中将其删除了,但是要清理sphinx索引中的违禁信息,必须重建索引,这样处理起来很花费时间,而且会造成线上数据不可用的情况,有没有好的办法呢?

潇潇雨雨
浏览 163回答 2
2回答

呼啦一阵风

信息中应该有一个状态标记字段吧。比如:1代表正常状态,-1代表违禁状态。只需要使用sphinx的UpdateAttributes去更新索引中的记录就可以了。在前端查询的时候使用SetFilter只过滤状态为1的记录即可。

凤凰求蛊

sphinx 支持SQL接口,可以用MYSQL类连接sphinx直接更新指定的那条数据
打开App,查看更多内容
随时随地看视频慕课网APP