今天爆出新闻,"阉割版" 谷歌中文搜索将回归. 首先, 这是好事, 将加强中文搜索的竞争, 免得一家独大, 毕竟, 中国的广大网民, 和巨大的消费市场, 国际公司都不可忽视.
作为 Google 的一名老兵, 在 2010 和之前, 就经历过, 谷歌经过结果审查, 好听一点的词, 是过滤的中文搜索的研发和运维. 那么, 大家肯定会好奇, 过滤是如何实现的呢? 到底怎么 "阉割" 呢?
最早的时候, Google 只有一个巨大的索引, 里面包括世界上所有国家, 所有语言, 的所有高质量的网站和网页. 高质量, 就是根据 PageRank 和用户点击计算出来的. 但是, 随着互联网的高速发展和 web2.0 的爆发, 网页实在太多了, 所有东西放到一块, 根本满足不了不同语言, 不同国家, 不同文化的需求. 比如, 英文, 美国的网页偏多, 好质量的也偏多, 由于索引的总量是一定的, 那么, 别的语言和国家的网页能进索引的量就少了, 这样, 对于别的国家的网民的体验就不是太好了, 很多中国网民, 看到的可能是外国的中文网站或网页.
于是, Google 为了解决这个问题, 提出和实现了区域索引, 也就是说, 对于不同的地区, 会建立不同的索引. 在这些索引里面, 控制不同语言, 不同地区, 不同国家, 能包括进索引的网页的数量. 比如, 对于, 欧美区域索引, 包含的英文网页的量特别大. 对于, 中日韩区域索引, 包含的中文, 日文, 韩文, 的网页的量就很大. 这样, 对于中国的用户, 就会使用中日韩索引, 这样, 就能有很多中文的, 国内的网站和网页的内容, 但也会有不少高质量的英文网页.
这样就很好的解决了索引对于中文搜索的覆盖的问题. 接下来, 就要解决结果审 (过) 查(滤)的问题, 毕竟, 很多违法的结果, 和敏感性的结果, 各国政府都是有要求的. 不要以为只有中国有过滤问题, 其实所有国家都有. 比如, 在欧洲, 有关纳粹的内容就是非法的.
第一个层次的审 (阉) 查(割)是在建立索引的时候, 有的网站或是网页, 会直接标注为非法的网页, 它们就进不了索引, 那么, 在搜索结果中就永远不可能出现了. 其它的敏感性内容, 会做网页分类和识别, 在索引时打上标签, 然后在搜索时, 根据不同国家的法律要求, 过滤掉不合规定的标签的网页.
第二个层次是使用黑白名单. 在索引时没有过滤掉的, 或是突发的要求, 那么, 黑白名单就能快速实时的起到作用. 在黑名单的网页结果, 会在搜索结果中被毙掉. 在白名单的, 如果搜索词要被屏蔽的, 那么就只能从白名单里面的那些网站出结果, 比如, 对于中文来说, 政府网站, 官媒等的网页, 就不会有任何问题.
第三个层次是实时过滤. 管理机构会不定时的告知某些网页, 或是某些搜索词是敏感词, 当接到这些指令时, 必须在系统设计和实现上能保障快速处理, 否则, 就有被拔网线的风险. 在 Google, 是通过代理 (Proxy) 的机制来实现的. 在国内, 有几个 Proxy 的数据中心, 里面运行的都是 Proxy 服务器, 它们接收用户的搜索请求, 然后和敏感词表进行比较. 如果整个搜索词, 或是部分搜索词, 或是变种的搜索词, 匹配了, 就需要启动过滤机制. 否则, 就是简单的去区域索引数据中心拿到结果返回.
过滤的时候分几种情况.
如果是很严重的敏感词, 一点错都不能出的, 那么, 就使用白名单机制的结果, 这些结果一般是经过人审核的, 或是政府网站内容, 或是官媒内容. Proxy 告诉后面的服务器, 只提供白名单结果.
如果是次之的敏感词, 这时, 会对返回的结果的标题, 摘要, 甚至全文, 进行敏感词的匹配, 如果, 有匹配的, 这条结果就要拿掉, 不能返回给用户. 过滤和匹配, 都是在 Proxy 进行的, 比较费时费资源, 也比较容易出错.
在某些情况下, 可能需要对所有搜索词的所有的结果, 主要是标题和摘要, 进行敏感词的匹配, 这样, Proxy 的工作量是相当大的.
还好, Google, 包括所有搜索引擎, 只会关注前面的 1000 个高质量的相关结果, 也就是说, 每次最多返回 1000 个网页结果. 这些结果, 一般都会在 Proxy 上做缓存. 这样, 其实能减少不少的计算量.
技术上来说, 阉割的关键是保障: 匹配的正确性和反应的实时性. 正确性, 就不用太多解释了, 如果弄错了, 后果会很严重的. 实时性, 就是管理部门有了新的过滤需求, 就的马上生效, 怠慢不得.
来源: http://www.mzh.ren/how-to-imp-china-version-google.html