实时搜索之微博(百度技术沙龙开放空间环境讨论主题)
实时搜索之微博
[文章作者:孙立 链接:http://www.cnblogs.com/sunli/ 更新时间:2010-08-18]
8月14日下午参加了infoq和百度共同举办的技术沙龙,主题是“走进搜索核心技术”,这也是我第一次参加infoq的聚会,感觉非常不错,不但免费,而且内容质量非常高,活动形式也非常的好,不幸的是回来后感冒发烧了。最后的OpenSpace(开放空间)环节,我所在组讨论了“实时搜索之微博”,非常荣幸我这次被选为组长上台给大家介绍了下,为了方便其他人,我就把讨论的结果记录下来了。
要构建一个基于微博的实时搜索,我们就必须选取一定的微博内容作为我们的基础。我们分为了三种类型:全网、站内,特殊。基于内容我们分为:微博内容,人和人的关系。
全网微博搜索可以通过统一提供的api获取数据,如没有api也可以进行spider爬取。如果决定针对不同的微博爬取的频率呢?百度的朋友讲的百度的实时搜索评价实时源的一些判断方式,那么微博可以通过flow人数和微博被转发的次数,发表的频率来决定微博的重要性,那么就可以决定我们对这个微博爬取的频率。
全网微博搜索爬取回来的内容也有一些特点,单条内容数据小,数据一旦发表就不再更新,有删除(对应百度的死链接处理),在当前国内的条件下,做全网搜索可能风险很大,对于言论的审核是个很大的问题。
站内的微博搜索获取数据比全网搜索要容易很多,暴力点就直接从数据存储(nysql,nosql什么都行)那里拿就可以了,还可以通过接口进行触发式的更新。
还有就是人和人的关系的获取可以通过follow和被follow的list页面获取。
对于获取到了数据的后续处理步骤:
1.过滤处理,去除无用信息,spam信息,重复信息。
2.百度,goole他们会有一套自己的pagerank算法,那么微博呢?我们组定义了一个follow-rank,它表示 follow,被follow,被转发,发表频率计算出来出来的一个rank值。最终的搜索结果还要结合时间,因为是实时搜索。
3.人的处理,我们觉得搜索人出来,应该是一个图,一个关系图,像一个拓扑图,星状图类似的。或者搜索一个人,比如“李开复”,可以显示出我可以通过那些最近的关系找到他。
实时索引处理:
跟百度的方法类似,根据时间段进行分段,当前索引段,近期,早期的(百度把当前索引库叫做流式库)。当前索引是构建在内存中的,以保证索引的性能,根据时间段定期进行合并到近期,早期。在搜索的时候同时并发的查询三个索引库,然后对结果进行merge.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?