搜索引擎概述 搜索引擎概念及工作原理
gaoyangw 2024-11-05 10:29 18 浏览 0 评论
在现在互联网如日中天的时代,即使你不是互联网行业的人,你也一定会用过谷歌或者百度。因为他们已经影响了我们生活的方方面面,为我们提供了很多的便利。那么在互联网行业的人我们除了使用它们,我们还迫切地想知道它们到底是怎么实现的。
以谷歌和百度为例子。它们都称之为搜索引擎。虽然听起来比较高大上。但实际上他们就是搜索数据用的。但站在数据方面考虑,实际上数据会分为两种:结构化数据和非结构化数据。
- 结构化数据:简单来说,就是有固定格式固定长度的的数据。平常比较常见的例如Mysql、Oracle数据库等。
- 非结构化数据:反之,就是无固定格式和长度的数据。例如比较常见的是:Email和文档数据。
按照这两种数据的划分,他们在搜索上也有很大的不同。结构化数据我们可以建立数据库索引来快速的搜索数据。而非结构化的数据搜索。我们主要有两种方式。一种是顺序扫描法,另一种是全文搜索法。下面我们详细介绍一下这两种的区别。
- 顺序扫描法
顺序扫描法顾名思义,就是按照数据的顺序一步一步地找。找到一个然后就记录该位置。直到所有的数据都要扫描完,才知道要查找的内容都在哪些位置出现过。但这明显有相应的弊端。如果要查找的内容碰巧在数据的最后。那么该方法需要扫描所有的数据,但这之前扫描的数据均无效。这就造成了很大的资源浪费。
- 全?搜索法
既然我们已经知道顺序扫描法的弊端,那我们应该怎么进?优化呢?因为这样的数据是非结构化的数据。没有办法像结构化的数据做索引来达到快速检索的目的。那我们到底应该怎么办呢?答案很简单。逆向思维。既然非结构化的数据没办法做到,那我们把他们改成结构化的数据不就行了吗。这里改成结构化的数据,并不是将全部的数据都改成结构化。这样将毫无意义。而是将要搜索的内容按照某种方式,做成结构化的数据,然后将结构化的数据创建索引,接着我们在通过这些结构化的索引,来搜索相关非结构化的内容。这就是全?搜索的基本原理。
就像我们在淘宝搜索手机一样,淘宝并不会将所有的数据都按照结构化存储,而是将相应的关键字,按照结构化存储即可。这样当我们命中关键字时,就可以搜索出来我们想要内容。也正是因为这些,所以常常有些人在搜索的时候,喜欢输入很多的修饰词,适当的修饰词是可以准确地帮助我们,找到我们想要的内容,但如果修饰词过多的话,并不会达到我们想要的,因为他检索的本质是命中关键词。这也就是为什么有时我们搜索时,明明加了很多修饰词,居然和我们没有加修饰词搜索出来的内容是一样的原因。
所以谷歌和百度搜索引擎的基本原理就是:网络机器人或者网络蜘蛛通过扫描网页中的内容,提取出相应的关键词,然后为提取出的关键词建?索引,并记录该关键词在文章中位置,当用户搜索时,如果命中该关键词,搜索引擎就根据按照之前的索引进查找,这样可以很快的返回用户想要的数据内容。
下面我们介绍一下现在比较常见的搜索引擎,并介绍详细介绍一下它们之间的区别。
- Lucene:它归属于Apache软件基金会。它是一个全文检索引擎工具包,所以它并不是一个全文检索引擎。既然是工具包,所以它提供了强大的API功能例如:
- 可扩展的?高性能索引
- 强?大,准确,?高效的搜索算法
- 跨平台解决?方案
由于它只是一个全文检索引擎工具包,所以在使用时,需要我们自行编码。虽然现在也支持了多种语言,但最成熟的开源版本,还是Java。所以要想使用它,我们需要Java的编程基础。
- Solr:它是一个独立的企业级搜索应用服务器,Solr是基于Lucene的Java库构建的开源搜索平台。并提供了HTTP的方式,创建索引和查询数据。除此之外,它还提供了以下比较高级的功能:
- 全?文搜索
- 分?面搜索
- 实时索引
- 动态群集
- Elasticsearch:它也是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch也是用Java语言开发的。它和Solr一样,除了基本的数据检索功能外,也提供了以下高级的功能:
- 分布式搜索
- 数据分析
- 分组和聚合
下面我们介绍一下,为什么会出现搜索引擎技术,而不是用传统的数据库去实现此功能。
我们知道如果采用传统的数据库,我们可能通过创建索引的方式,去优化我们的查询速度。并且,我们还知道,如果在数据量比较大的话,还可以采用分库分表的方式继续优化。那为什么还会出现类似Elasticsearch这样的搜索引擎技术呢?答案就像我上面介绍的那样。搜索引擎并不会将所有的数据全部按照结构化存储,而是按照相应的关键字存储。并且按照现在的网页数据,不同的网站,内容大不相同,如果采用结构化存储,那么在数据库设计上很难实现。除此之外,我们知道,在数据库中要想快速的查询数据,那么必须要创建相应的索引,但我们在使用SQL语法时,尝尝会因为我们使用不当,或者某些特定的方式,命中不到索引,这就导致使用数据库检索时,会比较慢。比较常见的就是。例如我们在数据库中搜索指定的关键字,并且该关键字的字段我们创建了索引,所以在搜索时,查询的速度很快,因为它命中了索引。但在实际的应用场景中,我们并不会正好输入的关键字就是数据库中存储的,而是采用的是模糊搜索的方式。而在数据库中要想使用模糊搜索,则要使用like关键字。但在使用like关键字时,则索引会失效。除此之外,我们在数据库中创建索引时,并不是越多越好。因为如果索引过多的话,则会影响inster和update的性能。所以,正是因为数据库有种种这样的原因,才会出现全文搜索引擎存在的必要。
下面我们介绍一下全文搜索引擎比较适合的应用场景都有哪些:
- 搜索数据比较大的非结构化数据。
- 支持文本数据量达百万级别。
- 支持交互式?文本的查询。
- 对写需求比较少的需求,因为全文检索的核心目的就是查询。
以上内容就是本篇的全部内容,在接下来的文章中,我们将重点更新有关Elasticsearch相关的内容,欢迎大家支持,谢谢。
相关推荐
- 格式转换不用愁!电子书、文档、图片均支持,工具—「Morphos」
-
本内容来源于@什么值得买APP,观点仅代表作者本人|作者:可爱的小cherry大家好,这里是Cherry,喜爱折腾、捡垃圾、玩数码,热衷于分享NAS、docker玩耍经验~...
- 12个简单好用的图表制作软件
-
你还在使用excel和PPT制作图表,却苦恼做出来的图表不够漂亮和灵活好用吗?你还在每到工作汇报/论文发表,都要临时抱佛脚去找图表制作软件吗?今天给大家整理了12个免费、简单好用的在线图表制作软件~速...
- 6个证件照制作软件,在家就能轻松搞定
-
在生活中,证件照的使用场景极为广泛,无论是求职、入学,还是办理各类证件,都离不开它。但去照相馆拍摄证件照,不仅耗时,还可能需要花费一定的费用。其实,通过一些方法,我们在家就可以制作出符合要求的证件照。...
- 网页设计需要学习什么软件?
-
网页设计是一门涉及多个环节的综合性技术,需要使用的软件包括:1.AdobePhotoshop(简称PS):作为图像处理软件的翘楚,Photoshop广泛应用于网页设计的各个环节,包括图像编辑、效果...
- 月薪10w+的网站/app/微信小程序开发、非程序员如何分一杯羹?
-
感谢AI的发展进步,任何人都可以开始开发一个网站,APP,小程序。这些曾经高大上,月薪10w+的程序开发,其实是有章可循的。理解需求,从背景信息入手当人工智能了解你所处理的内容时,它的工作效果会好得多...
- 6个编辑PDF文档内容的工具(软件+网站)
-
在日常办公、学习和生活中,PDF文件因其格式稳定、跨平台兼容性强等特点,被广泛应用。但有时我们拿到PDF文件后,却发现需要修改其中的内容,总感觉有点难搞。其实PDF文档编辑修改也很简单,这里分享6个软...
- 免费做图做视频的网站跟APP
-
AI制作电商主图的工具1.Canva(AI功能)oCanva提供了AI驱动的设计工具,如「MagicDesign」,可以根据你的需求自动生成电商主图。...
- 淘宝卖家如何进行微信公众平台推广
-
淘宝和微信是两大阵营,淘宝是上传不了带有微信二维码的照片的,而微信也打不开淘宝产品链接的,那么我们是不是就不能利用微信进行淘宝产品营销了呢?微信公众平台目前创业者常使用的吸粉利器,同时使用的人越来越多...
- 头条号平台关于整顿文末违规推广的公告
-
近期头条号平台接到大量用户举报,部分头条号罔顾平台《文章推广信息规范及处罚规定》,在文中进行违规推广...
- 大家看看网络赌博是怎么样把你一步步引流到微信群的
-
抖音里面继续看网络赌博引流...
- 1688如何使用数字营销智能推广为大促引流
-
大家平常使用的智投产品有哪些?...
- 公众号怎么引流推广看这一篇!淘宝、抖音都能为微信引流
-
近日,微信实施了1次常规化微信版本的升级更新,上线了iOS8.0.7微信版本和安卓8.0.7微信版本。在版本信息里,微信只提及到解决了一些已知问题,但其中隐藏了1个非常重要的的彩蛋!这一版本信息里没有...
- 抖音新规:治理“恶意营销号”十大违规行为
-
4月28日,抖音发布《关于“恶意营销号”的治理规范》。规范明确,将打击十类违规行为,从内容、账号、法律追责三个层面对“恶意营销号”进行处置。同时,抖音还推出账号“健康分”评估机制,通过分值管理实现...
- 电销卡的特点是什么?
-
电销卡是电销行业不可缺少的通信工具,具有多方面的突出特点。第一,通话成本低。与普通卡相比,电话营销卡通常为电话营销行业推出专属套餐,包括通话时间长,单位通话价格更实惠,可以有效降低企业的电话营销成本。...
- 什么是互动营销? 互动营销有什么特点?
-
什么是互动营销互动营销是一种以消费者为核心,强调企业与消费者之间双向沟通与互动的营销方式。它打破了传统营销中企业单向传播信息的模式,鼓励消费者积极参与到营销活动过程中,双方通过信息交流建立起紧密联系...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- 网站建设 (107)
- 网站开发 (47)
- 网络推广哪个平台好 (47)
- 百度收录 (50)
- 搜索引擎排名优化 (49)
- 关键词优化工具 (51)
- 外贸网站建设 (56)
- seo整站优化吧 (50)
- 广州seo (47)
- 苏州网站建设 (59)
- 百度搜索推广 (61)
- 关键词优化公司 (51)
- 网页制作 (47)
- 广州网站建设 (48)
- 电商网站建设 (49)
- 百度站长平台 (48)
- 网站模板 (51)
- 厦门网站建设 (52)
- 百度快照推广 (51)
- 免费网页在线客服系统 (53)
- 雷神代刷网站推广 (53)
- 手机网站建设 (53)
- 网站维护 (53)
- 网页制作教程 (66)
- 百度收录批量查询工具 (48)