由Typeahead想到的搜索的本质,和OO和数据库是统一的

搜索的本质就是输入一个关键词,返回跟这个关键词有关的对象(实体)列表。两层主要意思,第一,搜索本质是返回实体,隐含的意思是你必须先定义各种对象,这就需要OO,从系统中分析出各种类型的对象供搜索。这里背书了OO是前提——系统就是由各种对象组成,搜索就是找到你需要的对象的问题。 第二,和关键词有关的对象。这里有关是抽象的,就是一个link关系,对于自然语言文档类型的对象的搜索,这里的”有关系“就是包含关系,(文档文本里包含了这个词),对于数据库记录,可能是某个特定字段(或者任意字段,这个由你自己决定)的值是这个关键词,,还可以是某种业务关系,本质这个link可以任意加,取决于你是否建立key --> 这个对象的关联关系,是否希望这个对象被索引、被这个词索引。


twitte或者facebook的typeahead,你键入的时候,下拉框里不止是一种对象,有friends, 有events等等,这里引出一般的搜索架构:aggregator + leaf service,leaf service就是针对某种特定类型对象的搜索,aggregator并行向leaf service发出搜索请求,然后整合结果。类似windows 8的搜索,返回的是可能是文件,程序、配置项目等。各种对象本身是以一种树形关系存在,类似目录系统,原始的搜索所就是目录浏览那样去找东西。关键字搜索服务提供了一种平面化的搜索:输入关键词返回各种类型、层级的对象。


typeahead甚至是google的一个服务,不需要自己实现,只需要嵌入jQuery就行。本质上就是你提供一个关键词,google给你返回和这个词有关联的搜索词列表,只不过背后的数据是google维护的。typeahead对应的对象就是搜索词。(所有用户的搜索词本身也是数据,也可作为搜索的对象)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值