挑战Google?看看结构化数据搜索引擎DuckDuckGo是怎样做到的

DuckDuckGo (1)

自从Google因为“技术”原因变得难以使用后,我尝试过用许多搜索引擎进行一些英文和专业性内容的搜索,但它们大多数都差强人意,直到我开始使用DuckDuckGo,我告诉自己,就是它了。

DuckDuckGo因其反Google战略而崛起(其流量统计数据是完全公开的),我们知道,当用户在用Google进行搜索时,Google会跟踪他们的整个搜索过程,收集包括搜索关键词、选择进入的网页等各种行为数据,Google这么做的目的很简单:为每个用户建立一量化的个人模型,这样不仅能保证面向不同的用户做更个性化的搜索结果推荐,同时也提高了广告投放的精准度。但也正因为如此,会不可避免地涉及侵犯用户的隐私问题:你的喜好、身高、体重、职业……这一切秘密将在Google进行数据挖掘后被呈现出来,即使Google公司和Google的员工都有足够的职业操守去为你保密,你也无法保证其不会在Google的服务器被攻击时泄密。Gabriel Weinberg抓住了Google的这一缺陷,推出了搜索引擎DuckDuckGo。

google9

DuckDuckGo如何在搜索质量上挑战其他“越用越精准”的搜索引擎?最近,Gabriel Weinbergi在接受High Scalability的采访时分享了许多技术细节并强调了“结构化数据搜索引擎”这一概念。

我们知道,传统搜索引擎的基本原理是遍历整个互联网上开放的HTML页面。随后,对这些页面的内容数据进行拆解、分词,把它们作为索引项存储在数据库中。那么在用户进行搜索时,就会利用pagerank算法,根据字频、网页日期、网站权重、是否为客户购买的关键字、是否为作弊网页、是否为标题文字等一系列规则将内容排序并呈现出来。

Gabriel Weinbergi在DuckDuckGo中做了对此改进:在后端,DuckDuckGo对所得到的数据进行了清洗、合并、分类、映射、排序和消除歧义的工作,将这些数据按照类别存放在PostgreSQL,、Solr、Berkeley和flat files这些关系型数据库中。当用户进行搜索时,DuckDuckGo做的不仅仅是关键词匹配,而是分析用户的语义,了解用户真正想要什么。再针对用户的搜索意愿调用关系型数据库中的内容。

第二点很大的不同是, DuckDuckGo已经接入许多其他网站的搜索API,这些网站能帮助其提供相关领域较为精准的内容。同时,通过简单的“内容+!Bang”命令选择你需要调用的API,可以做到站内搜索。例如我在搜索框内输入“Kindle  !a”,就能直接搜索Amazon内与Kindle相关的内容,输入“Ray Allen  !gi”就能直接利用Google Image搜索Ray Allen的照片,输入“DuckDuckGo !W”就能直接呈现其维基百科页面。在这一层面上,我认为可以把DcukDuckGo想象为许多个垂直搜索引擎的合集。

4.50.11

除了上述两个方面外,DuckDuckGo还推出了针对对细分领域的搜索——DuckDuckHack,开发者可以为DuckDuckGo开发这些搜索插件,当你安装这些插件后,就可以利用它直接进行一些垂直搜索,例如歌词搜索、Twitter搜索等。

4.49.08

当然,DuckDuckGo作为一个新星,还有许多地方有待提高,例如索引量不够大、中文搜索不太靠谱等问题。但它已经在保证用户隐私安全的基础上成功搭建了一个全新的搜索引擎模式,并获得了广泛的认可。

(本文图片来自网络和对DuckDuckGo产品的截图)

订阅更多文章