“仟言万语” 微信公众号中的搜索是如何实现的?

2014-07-09 23:22:57
利用搜狗的微信搜索功能,给我们的微信公众账号加上微信搜索的功能吧。

今天,同事介绍了一个微信公众号“仟言万语”,这是一个关注传统媒体以及传统媒体转型的公众号,
感觉挺不错的。其中,同事重点推荐了里面的微信搜索功能,
只要发送一个关键字,就能够搜索该公众号以前发过的文章,更能够进行全微信平台的搜索,也就是说可以把其他公众号发过的文章也搜索出来。
在同事看来觉得很新鲜、很神奇,
其实没那么神秘, 道理很简单,实现起来也并不复杂,我就抽空在我的微信公众号里也实现了这个搜索的功能。
下面我就简单介绍一下他们是怎么实现的。


首先我们需要了解以下几个知识点:
 
1、微信公众平台的开发者模式。
允许我们自己完全控制业务的逻辑,微信只充当一个来回传递信息的中介。
另外,开发者模式的功能比普通的编辑模式更加强大,比如在图文消息里,可以直接跳转到其他网页,而不用进入详情页,再点击查看原文。

2、将自己过往发过的微信保存在自己的服务器上
微信虽然很火,但是内容完全放在微信平台也不是个十分保险的事情,最好能在自己的服务器上把这些内容保存起来。这样,可以进行一些搜索、分类、聚类等的后续处理。

3、搜狗搜索中的微信搜索功能

腾讯注资搜狗,也顺便把微信搜索让搜狗来做,以前微信的信息都是一个个的孤岛,没办法链接起来,搜狗搜索至少往前进了一步。

所以,这里所谓的全微信搜索,也是借助了搜狗的微信搜索,只不过把结果做了一下处理。



原理图:



程序部分相对比较简单,我就简单说一下思路,有需要代码的可以给我留言:

1、在本地服务器保存自己发过的微信文章
如果有自己的展示页面更好,没有的话,可以直接用微信的展示页面

2、搜索的结果分为两部分
如果自己发过的文章里面有符合的文章,则把自己的文章放在前头,缺少的(最多10个)可以从搜狗微信搜索来补充

3、调用搜狗搜索
搜狗搜索虽然没有提供现成的API接口,但是返回的数据还是比较规整的,
简单的通过正则表达式,就能够很方便的匹配出文章的标题、描述、图片、微信链接等信息

4、微信公众号需要启用开发者模式