searchify是一个Search-as-a-Service平台,解决企业站点的站内全文搜索速度慢,建设成本高的问题,不过对于小站来说,价格还是比较贵的,今天只讨论他的一些基本概念以及运行使用方式。
基本概念
其实最初了解searchify时,思路一直在google上,所以就想当然的以为searchify会抓取网站中的页面,形成索引,我们在使用的时候就跟google的站点搜索那样,直接搜索然后出结果就行了。但是事实上完全不是这么回事。
这里有两个概念要先了解下:
index
index就是索引,我们知道,这就是我们要搜索的内容的集合。在searchify中,我们可以创建多个index(免费期间会有限制),这就是说我们可以创建多个集合,比如你建了两个网站,上面都有站点搜索,那你显然需要两个集合,免得a站点的搜索结果中包含了B站点的内容。也就是说,当我们需要把搜索的内容分开时,就需要创建多个索引。
doc
doc就是文档,当然这个文档和word文档有区别的。它是一个抽象出来的专门用于搜索的一个数据对象(其实最终表现为一个页面),比如相亲网站要搜人(找到某个人的资料页),那么这个人的数据对象大致要包含的内容就有:
- 姓名
- 身高
- 工作
- 收入
- 性格
- 兴趣
- 爱好
- 学历
- … …
这些属性(元数据metadata),这些东西合起来,就是一个用于搜索的数据对象,如果输入关键词,要搜人,那关键词就从这些字段的属性中去匹配,全文搜索。当然相亲可能还会关心照片,不过照片是没办法用文字搜索的,所以不宜列入,只可以在搜索结果中显示。
运行和使用方式
刚才说了,searchify并不主动抓取你的页面数据,因为抓取内容的方式并不区分这个属性是姓名还是性格,比如有人要找演员高明,搜出来的全是自以为自己很高明的人,这时候就需要详细搜索,所以抓取页面的方式的缺陷就表现出来,而要做Search-as-a-Service,显然要比google要搜的更准确。那么干脆,你的每个页面的metadata都由你自己设置好了。你把页面的元数据都提交到你的index中,然后就可以搜索了。怎么提交给他呢?
searchify注册成功之后,会自动给你生成两个api地址(其实两个地址是一个地址):
- 一个是私有的url,包含特定密码的url,该地址用户创建及修改index、doc等等;
- 另一个是不包含任何密码的url,这是公开的,用于自动完成、搜索少的。当然,只要有人知道了你的api地址,都可以搜索你放在searchify中存放的数据。所以一定要考虑清楚,并不是所有内容都需要搜索,尤其不要把有安全问题的内容提交给searchify。
searchify的文档地址:
https://www.searchify.com/documentation/
注意事项
- Searchify不是一个关系型数据库,不能跨index进行搜索。
- 用户的搜索习惯需要研究,需要给不同的内容分类以适应搜索。比如人可以按身高分、也可以按学历分、也可以按专长分。相亲网站显然不会按专长进行搜索,而招聘网站可能就一定会按专长进行搜索。
- 各个数据对象之间没有事实上的关联关系(本身不可以跨index搜索,就注定数据之间没有关联性)。
- searchify所宣称的搜索速度快是相对的,因为你还要请求他的api,所以在他的搜索速度非常快的情况下,仍然要看你的服务器到他的api之间的访问速度(表现在你的后台代码访问该api时),或你的客户到他之间的访问速度(表现在自动提示)。
原创文章,转载请注明: 转载自Happiness space|Jason and chris
本文链接地址: 搜索即服务平台searchify的基本概念