sphinx-作为搜索引擎的架构设计,求评价

coFinder 2014-05-06 10:18:39

想在应用中实现一个朋友网类似的搜索引擎,(很多社交类应用都有这样的搜索设计)

对于这种给定字段的数据检索,目前用户量不大的时候就直接用SQL 语句实现了。
(left join 多个表,where 条件 很丰富)。
但是目前用户搜索量越来越多,用sql 直接查数据 扛不住了,想用sphinx 来代替 setFilter


* 用户信息表总共又4个表,账户信息,用户基本资料,用户地理位置信息,用户设置信息。每个表都有userid


目前的设计方案:

1: sphinx对要过滤的字段做索引,
2: 新注册的用户通过定时增量索引更新sphinx的主索引
3: 对于用户修改了自己的资料的,采取 根据 updatetime 字段(所有用户表都有这样的字段) ,
通过定时任务 调用shpinx的upateAttributes来更新索引。
4:对于用户信息修改了 我也想通过mysql的UDF trigger 异步更新数据。(不知道哪种比较好??!?!)。

5: spinx取到的只是userid,
想把所有的要输出到客户端用户信息保存到Redis
键值对如:userinfo#$userid => {"name":"dashu","age":"38"}

得到userid之后,再通过redis 的 multiGet 获取用户信息。
对于redis里面的用户数据更新的问题 也是采用 定时 根据mysql的updatetime字段来更新,或者UDF trigger 异步更新(哪个好呢?? why)。

有没有大虾有更好的设计方案,拿出来分享一下。
...全文
83 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧