实时搜索OneRiot
前段时间老板一直催着我要实时搜索引擎,自己常常不以为然,因为现在炒作概念炒作的实在是太夸张了。但是什么是搜索引擎?直观上理解就是能够及时的在搜索结果中展现搜索相关的最近内容。在The Inner Workings of a Realtime Search Engine中指出:在搜索引擎的用户中,有60%的人用它来寻找特定的信息和导航信息(比如为了查找 rushcj.com等特定的主页信息),其他的40%的人是想知道设个时候发生什么或者是特定的话题最近进展,而实时搜索引擎就能很好的解决这个问题。
对于搜索引擎来说,一般的过程是:先将相关的网页信息从网络上爬去下来,然后对网页的内容进行抽取(对于中文还需要分词),然后建立索引,建立索引之后的索引库就可以给用户进行检索信息的。基于这个过程我们可以知道,用户想要或得实时的数据信息,那么这一过程就必须在比较短的时间内完成,因为之后进入索引库之后的数据才能够被用户检索。
其实关于实时搜索引擎的概念很早就人提出来了,很多公司或者实验室一直没有没有很好的进展的主要原因是因为有两个问题没有很好的解决:一个是对实时爬取下来的信息进行及时的索引,另一个就是rank的机制(这个直接体现在搜索质量上,目前这个也是几个搜索公司之间竞争的主要方面)。实时搜索引擎来说,实时的更新索引数据信息时比较困难的,如果将要检索的对象针对于网上更新的数据去做的话,这将是一个浩大的工程。
OneRiot团队推出自己的实时搜索引擎,他们是如何解决上面的两个问题的呢?对于他们来说,他们采用一种新的方式去索引网页信息:主要针对于重要的实时社会网络。传统的搜索引擎爬去的数据主要是来自己已经有的网页中的链接的数据或者是人工手动添加的链接的数据。但是这两年以来,由于像facebook,twitter和饭否这样的实时信息社会网络共享的数据连接越来越多,OneRiot采取的一种方式就是分析从社会网络实时分享的数据链接来获取数据,并对数据进行索引。社会网络上的实时数据链接代表着大家在正在讨论什么?而链接中的数据就是关于讨论话题的网页内容信息和其他数据信息。这种方式是一种或者建立索引数据的新方法,当然他们还给用户提交了需要索引的网页的接口。对于OneRiot来说,他们对搜索结果中首先加入了搜索的结果离现在的时间是多久,另外一个就是对搜索结果又一个新的排序算法Pulse Rank,这种算法对于给搜索结果权重的计算考虑了多种因素:
- 对于一个实时搜索引擎的用户来说,对发生在2分钟前的事情比对发生在两个星期前的事情会更有兴趣。系统中也考虑了没有检索到相关的信息下,会现实最近最受欢迎信息的实时信息。
- 领域相关。对于一个从个人blog上发布的信息比一个从其他地方发布的系想你权重要高。算法会分析在此时特定领域的相关链接,对于一些比较流行的领域还会增加权重。
- 个人相关。算法会考虑是谁在共享这些链接,对于一个人重复的去分布一个链接,那么这个链接在算法中将会得到一个比较低的权重,对于一个链接有很多人重复共享的话,那么会在算法中得到一个较高的权重。
- 实时增加。算法对于一个共享的链接受欢迎程度是否增加。比如会考虑此时与两分钟相比共享的人数(单位时间内)是否增加,如果增加就就增加权重,减少就降低权重。
OneRiot确实能够实现信息的实时搜索,但是又能减少冗余数据的检索,而且能够及时的获取热门话题的数据。但是对一个好的实时搜索引擎,不仅仅是应该能够显示用户检索的实时信息,更应该能够为用户提供个性化的服务,例如实时的更新用户检索结果。






