1.搜索引擎的起源
1.随着
英特网的发展,搜索引擎也随着适应环境(技术,用户需求发展)随着发展。早期的文件在因特网上共享一些专业用户开始记录文件的类型地址等信息。但是随着加入因特网的人越来越多分享的资料也越来越多靠人工记录已经不能满足用户的需求了。这时出现了早期的爬虫用于满足用户对于资料的需求。
1990年,
加拿大麦吉尔大学
(University of McGill)计算机学院的师生开发出Archie。当时,
万维网
(World Wide Web)还没有出现,人们通过
FTP
来共享交流资源。Archie能定期搜集并分析
FTP服务器
上的文件名信息,提供查找分别在各个FTP主机中的文件。用户必须输入精确的文件名进行搜索,Archie告诉用户哪个
FTP
服务器能下载该文件。虽然Archie搜集的信息资源不是网页(
HTML
文件),但和搜索引擎的基本工作方式是一样的:自动搜集信息资源、建立索引、提供检索服务。所以,Archie被公认为现代搜索引擎的鼻祖。
2.搜索引擎的发展
1.目录索引
按不同类别分类检索及
这时用人工对各种网上资料及信息处理的门户网站的出现如1995年成立的雅虎等。网站上的分类目录由人工整理维护,精选互联网上优秀网站并放入对应的目录下,同时为用户提供搜索接口。但是门户网站的缺点也有比如信息更新不及时用户不能找到自己想要的信息及资料等。
2.全文索引
为了满足更多用户的数据需求及个性化需求 1998年Google公司成立了。同时上市的高市值也激发了李彦虎回国创立了百度。早期的搜索引擎相当于网上的资料索引器,同时在页面提供广告显示及有限的竞价排名。
3.元搜索引擎
4.垂直搜索引擎
垂直搜索引擎
为2006年后逐步兴起的一类搜索引擎。不同于通用的网页搜索引擎,垂直搜索专注于特定的搜索领域和搜索需求(例如:机票搜索、旅游搜索、生活搜索、小说搜索、视频搜索、购物搜索等等),在其特定的搜索领域有更好的用户体验。
对于搜索引擎的发展:
从互联网上的资源分:随着互联网上的信息的种类分类越来越细,比如即时新闻即使讯息的,对知识及技能问题总结的,对存在人事物做介绍的这个就涉及到品牌推广,网上各种资源做整合的比如音乐电影等,
从用户需求上分:专业的,准确的,及时的,可靠的,获取信息依旧是主流需求,因此更专业更准确的垂直搜索比,广泛的垂直搜索受欢迎。依据克莱.舍基的《认知盈余》和《未来是湿的》的人们对信息具有获取需求更具有分享互动需求。因此能提供知识获取也能能提供用户的知识展示的知乎大受欢迎。
全文搜索引擎还是在各类垂直领域做了一次统一搜录。但不同细分的垂直领域能很专业解决用户信息需求时,相信对于广度的全文搜索的需求应该也会降低。
搜索引擎发展方向会朝着如下方向发展:
1.对于自身专业信息分享的需求
2.生活多样化切碎了人们的时间完整性:对自身感兴趣的方向了解
3.
3.搜索引擎的分支领域的运用及发展
1.舆情监控系统
1.及时获取网络的不同平台的信息,数据爬取偏向于社交类的,及时获取一些关于舆论,谣言,等信息。同时抓取发布平台,最好能从发布平台获取用户的账号信息发布IP等。
2.定义关键字集合
3.从网上找相关的网址
4.分析内容然后展示。
监控关键词词库:搜索相关性词库,这个词库中词汇具有不同的权重,用于表示和这个部门这个公司的关联重要性。 这个词汇一般用于分析搜索到的信息和相关监控方的重要程度。
分析情感色彩词汇库:将不同的感情色彩的词汇分为不同等级的正面词汇和负面词汇。这个词汇用户分析从网上搜索的相关信息的情感色彩。
2.个性化的新闻推荐
1.通过收集用户对不同标签的新闻或者blog或者话题等内容的喜好程度给用户建立一个喜好度标签,在用户需要或者新闻信息时推送相关的文章
2.不同领域的关键词集合,二维集合。
3.不同用户爱好的标签集合
4.将各类有趣有意思及实时新闻按领域标签进行道文检索。
5. 个性化推荐文章及类似文章
产品有:今日头条
中搜的:文章具有按类别分类 不过也有按平台分类的模式
3.商业信息挖掘 如行业动态
1.
4.搜索引擎的结构和大体模块
1.大体模块
搜索引擎的大体结构
结构
1.爬虫:
主要功能就是爬去网页数据,
管理爬取数据URL地址,如过任由爬虫解析网页中的url然后爬取后放入url库,很容易造成url死循环。url的分布式管理以及标记和检索也是算法和性能研究的重点。
初始爬去文件数据管理:爬取文件的过期管理机制(百度有百度快照),
2. 数据处理模块
1.对下载下来的数据进行数据清理,如去除HTML标签,广告去除,等
2.分词:对不同语言进行分词,搜狗有免费开放的词库使用。
3.对没用的词汇进行去除。
4.倒排索引的建立
6.对网页进行权重计算,对页面权重的计算包括计算网页来源的权威程度,网页中包含有关键字的数目,网页中关键字的位置比如标题比内容重要。对网页权重的计算方法也是seo 搜索引擎优化专门针对的方法。
3. 用户数据展示模块
1.对用户输入的语句进行分词
2.用用户的词汇集合和倒排索引的词汇集合进行匹对
3.对从倒排索引中获取的相关页面进行排序,加入竞价排名机制等或者插入推广然后给用户展示
2.模块细分
2. 爬虫搜索数据时采取的搜索策略 广度搜索和深度搜索
2.爬虫的URL来源源自于。基于互联网的结构就是不同功能的节点地址相互引用
,于是对不同页面进行解析就会出现新的URL地址,这个新的地址和自身的URL库相比对,
出现重复的
或者出现
已经访问的可以不放入URL库,也可以放入待抓取URL队列中。同时这个URL引用也是计算网页权重的重要方式(李彦宏有个相关专利)。
3.对URL队列采用位标示进行处理,即网页是否已经访问采用位标示可以加快队列检索速度。
3. 网页脏数据清理。Dom 解析 HTML标签去除 正则表达式,针对有些大公司的门户网站专门有解析模版。
4. 分词
中文词库使用 搜狗中文词库
算法的选取
http://www.cnblogs.com/birdshover/articles/1125614.html
http://www.cnblogs.com/flish/archive/2011/08/08/2131031.html
5.倒排索引的建立
建立全文检索的工具
http://lucene.apache.org/
Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,
而是一个全文检索引擎
的
架构
,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。
建立全文检索的WEB请求接口:solor
是一个高性能,采用Java5开发,基于Lucene的一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。
二 使用 Android方面的
1.使用
butterknife,retrofit,okhttp,greendao,rxjava,等框架做的页面依赖注入,业务数据分离及事件回调的框架及各个层次模块的测试。