搜索引擎

所谓搜索引擎:

搜索引擎是根据一定的策略,运用特定的计算机程序从互联网中搜索信息,在对信息进行组织和处理后,为用户提供检索服务,将用户检索的相关信息展示给用户的系统。搜索引擎一般涉及以下几点:

 

1、网络爬虫技术:我们可以通过DNS获取网络中访问量比较高的网站域名,也可以通过在访问网站中的链接和网页的信息,通过正则表达书获取我们想要爬取的内容,然后保存到本地数据库中,当用户搜索相关的内容时,直接在数据库中查询,并将对应的信息展示在页面上,提供给用户浏览查看。

2、DNS:每个ip地址都有一个主机名,一个主机名可以有一个或多个字符串组成,字符串之间由逗号隔开,有个主机名之后,我们就没有必要死记硬背ip的ip地址,而只需要记住ip的主机名,这就是DNS协议的功能。在技术角度看,DNS解析是互联网中的绝大多数应用实际的寻址方式。从资源的角度上看,域名是互联网上的身份标识,是不可重复的唯一标识。

3、垂直检索:垂直检索通常值的是针对某一领域或某一方面进行深层次的检索,是搜索引擎的细分和延伸。相对于通常的搜索引擎搜索信息量大,搜索信息不准确,深度不够的特点,垂直搜索针对某一领域,某一特定人群,提供一些特定需求,特定信息,这都检索所获的信息更加准确,更具有相关性。

4、搜索引擎中非常重要的一点就是实用到了多线程,所谓多线程的主要目的是减少CPU资源的浪费。将一些数据写去CPU中的时间和CPU处理数据的时间相差非常大时,对于单线程的服务器,CPU大部分时间处于闲置等待的状态。所以为了提高CPU资源的利用率,这里是必须使用多线程的,至于线程的数量多少,通常情况下,一台服务器的线程在30~40之间,这个还是根据项目大小和业务需求动态调整。

5、线程池:提及到多线程,就避不开线程池的概念,线程池是帮助我们管理线程之间的切换,调配等,这些繁琐的工作不需要我们程序员关注,线程池帮助我们管理,线程池相当于一个框架,在线程池中,存在一个消息队列,它自动分配线程,确保不会有线程在等待的时候,其他的线程存在空闲的状态。

6、模拟登录:通俗的讲,就是将用户名和账号密码写在程序中,当浏览一些网站时,不需要我们每次进入一个新的网站都要重新登录账号,这样会很繁琐,而模拟登录就是解决这一繁琐的过程。

7、Linux定时任务中心,在网络上爬取一些信息或资源时,网络上随时会更新一些新的信息或资源,如果不定时爬取网络上的新信息,搜索引擎搜索到的信息就可能是很久之前的,这样对于搜索引擎来说毫无意义。所以定时不间断的获取网络上的信息,所以靠的技术就是Linux定时任务技术。

8、shell脚本:利用shell的命令解释功能,对一个纯文本的文件进行解析。然后执行这些功能,也可以说shell脚本是一系列命令的集合,shell可以直接在win/linux/unix上面,并且可以调用大量系统内部的功能来解释执行程序。

 

     这些涉及到的点会在之后的博客中继续深入的展开每一项,敬请关注!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值