国学经典,永久流传《诗经朗诵全集》
《诗经朗诵全集》带你领略国学经典,永久咏传。...
2023-07-31
在互联网如火如荼的今天,即使你不是互联网行业的,你也一定会用谷歌或者百度。因为他们影响了我们生活的方方面面,给我们提供了很多便利。那么互联网行业的人,除了用,我们也很想知道他们是怎么实现的。
以谷歌和百度为例。都叫搜索引擎。虽然听起来很高大上。但实际上,它们是用来搜索数据的。但是在数据方面,其实数据可以分为两种:结构化数据和非结构化数据。
结构化数据:简单来说,就是有固定格式固定长度的的数据。平常比较常见的例如Mysql、Oracle数据库等。非结构化数据:反之,就是无固定格式和长度的数据。例如比较常见的是:Email和文档数据。
按照这两种数据的划分,在搜索上也有很大的不同。结构化数据我们可以建立数据库索引来快速搜索数据。但是非结构化数据搜索。我们主要有两种方式。一种是顺序扫描法,另一种是全文检索法。下面详细介绍一下两者的区别。
顺序扫描法
顺序扫描法,顾名思义,就是按照数据的顺序一步一步地查找数据。找到一个,然后记录位置。直到扫描完所有的数据,你才知道你要找的内容出现在了哪里。但这显然也有相应的弊端。如果你要找的恰好在数据的末尾。那么这个方法需要扫描所有的数据,但是在此之前扫描的数据是无效的。这造成了资源的极大浪费。
全⽂搜索法
既然知道了顺序扫描法的弊端,应该如何优化?因为这样的数据是非结构化数据。没有办法像结构化数据那样进行索引,达到快速检索的目的。那么我们该怎么办呢?答案很简单。逆向思维。既然非结构化数据不行,那就改成结构化数据吧。这里改成结构化数据不是说把所有数据都改成结构化数据。这将毫无意义。而是把要搜索的内容通过某种方式做成结构化数据,然后对结构化数据进行索引,然后我们通过这些结构化索引来搜索相关的非结构化内容。这是全搜索的基本原理。
就像我们在淘宝搜索手机一样,淘宝并不是把所有的数据都结构化存储,而是把对应的关键词结构化存储。这样当我们点击那个关键词时,我们就可以搜索到我们想要的东西。也正是因为这些,有些人在搜索的时候往往喜欢输入大量的修饰语。合适的修饰语可以帮助我们准确的找到我们想要的,但是如果修饰语太多,就达不到我们想要的效果,因为他搜索的本质就是击中关键词。这也是为什么有时候我们搜索的时候,明明加了很多修饰语,其实和我们搜索没有修饰语是一个道理。
所以Google和百度搜索引擎的基本原理是:网页机器人或者网络蜘蛛扫描网页内容,提取相应的关键词,然后对提取的关键词进行索引,记录关键词在文章中的位置。用户搜索时,如果命中了关键词,搜索引擎会根据之前的索引进行搜索,可以快速返回用户想要的数据内容。
现在来介绍一下常见的搜索引擎,详细介绍一下它们之间的区别。
Lucene:它归属于Apache软件基金会。它是一个全文检索引擎工具包,所以它并不是一个全文检索引擎。既然是工具包,所以它提供了强大的API功能例如:可扩展的⾼高性能索引强⼤大,准确,⾼高效的搜索算法跨平台解决⽅方案
因为它只是一个全文搜索引擎工具包,所以我们在使用的时候需要自己编码。虽然现在支持很多语言,但是最成熟的开源版本还是Java。所以要使用它,我们需要Java的编程基础。
Solr:它是一个独立的企业级搜索应用服务器,Solr是基于Lucene的Java库构建的开源搜索平台。并提供了HTTP的方式,创建索引和查询数据。除此之外,它还提供了以下比较高级的功能:全⽂文搜索分⾯面搜索实时索引动态群集Elasticsearch:它也是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch也是用Java语言开发的。它和Solr一样,除了基本的数据检索功能外,也提供了以下高级的功能:分布式搜索数据分析分组和聚合
下面介绍一下为什么会出现搜索引擎技术而不是传统数据库来实现这个功能。
我们知道,如果我们采用传统的数据库,我们可以通过创建索引来优化查询速度。而且我们也知道,如果数据量比较大,可以通过把数据库分成表来继续优化。那为什么会有Elasticsearch这样的搜索引擎技术呢?答案就像我上面介绍的那样。搜索引擎并不是按照结构存储所有数据,而是按照对应的关键词存储。并且根据目前的网页数据,不同的网站有不同的内容。如果采用结构化存储,很难实现数据库设计。除此之外,我们知道如果我们想要在数据库中快速查询数据,我们必须创建相应的索引。但是我们在使用SQL语法的时候,如果尝试的话,由于使用不当或者某种特定的方式,无法命中索引,导致在数据库中检索的速度变慢。比较常见。比如我们在数据库中搜索指定的关键字,我们为该关键字的字段创建了一个索引,所以在搜索的时候,因为命中了索引,所以查询速度非常快。但是在实际的应用场景中,我们并不是只输入数据库中存储的关键词,而是使用模糊搜索。但是,如果要在数据库中使用模糊搜索,应该使用like关键字。但是,当使用like关键字时,索引将无效。此外,当我们在数据库中创建索引时,越多越好。如果索引太多,会影响inster和update的性能。所以,正是因为数据库有各种这样的原因,全文搜索引擎才有存在的必要。
下面介绍一些适合全文搜索引擎的应用场景:
搜索数据比较大的非结构化数据。支持文本数据量达百万级别。支持交互式⽂文本的查询。对写需求比较少的需求,因为全文检索的核心目的就是查询。
以上是本文的全部内容。在下一篇文章中,我们将重点更新与Elasticsearch相关的内容。欢迎大家支持。谢谢你。
以上内容就是为大家推荐的什么是搜索引擎(常用的信息检索平台)最佳回答,如果还想搜索其他问题,请收藏本网站或点击搜索更多问题
内容来源于网络仅供参考版权声明:所有来源标注为小樱知识网www.xiaoyin02.com的内容版权均为本站所有,若您需要引用、转载,只需要注明来源及原文链接即可。
本文标题:什么是搜索引擎(常用的信息检索平台)
本文地址:https://www.xiaoyin02.com/shcs/642141.html
相关文章
热点文章
2021年独生子女补贴新政策是真的吗(独生子女证有有效期吗)
2021年国庆节阅兵仪式几点开始几点结束(2021年国庆节还有阅兵吗)
鼠目寸光一点红是什么生肖动物(鼠目寸光一点红)指什么生肖,紧密
k0到k9的玩法大全(强制gc的玩法和注意事项)
入土为安是什么生肖《入土为安》打一个生肖动物,词语解释
浙江12月底全面停工是真的吗(浙江什么时候放假停工)
如何做t(t怎么把p做哭)
北京口碑最差的三甲医院(北京301医院最擅长什么)