当前位置: 首页 > news >正文

网站设计报价方案丹灶网站设计

网站设计报价方案,丹灶网站设计,seo优化教学视频,上海外贸仓储公司接上篇《1、初识Elasticsearch》 上一篇我们学习了什么是Elasticsearch#xff0c;以及Elastic stack(ELK)技术栈介绍。本篇我们来什么是正向索引和倒排索引#xff0c;这是了解Elasticsearch底层架构的核心。 上一篇我们学习到#xff0c;Elasticsearch的底层是由Lucene实…接上篇《1、初识Elasticsearch》 上一篇我们学习了什么是Elasticsearch以及Elastic stack(ELK)技术栈介绍。本篇我们来什么是正向索引和倒排索引这是了解Elasticsearch底层架构的核心。 上一篇我们学习到Elasticsearch的底层是由Lucene实现的而Lucene中的核心技术就是“倒排索引”。“倒排索引”是与传统数据库的“正向索引”模式对比得出的一个名称。 一、正向索引 传统数据库如MySQL采用正向索引例如给下表tb_goods中的id创建索引 对于数据库一般情况下都会基于id去创建一个索引然后形成一颗B树也有数据库是Hash结构这里不再单独介绍然后我们根据id检索的速度就会非常快。 B树是一种自平衡的多路查找树主要用于磁盘等存储设备上的文件系统和数据库索引。它具有以下特点 ●所有叶子节点都包含有关键字的信息。 ●非叶子节点不包含具体的数据只用来指导搜索方向。 ●所有的叶子节点通过指针链接在一起形成了一个链表。 ●每个节点可以拥有多个子节点子节点的数量由树的高度决定。 假设我们在tb_goods表的id列上创建了一个索引那么这个B树可能会是这样的 当我们要查询某个特定的ID时比如查询ID为3的商品信息可以通过B树快速定位到对应的记录 1.首先访问根节点2。 2.因为要找的是3所以从右分支向下。 3.到达第二层的节点3。 4.再次因为要找的是3所以直接到达该节点。 5.在此节点找到ID为3的记录。 这种方式的索引就是一个“正向索引”。 但是如果我此时搜索的字段不是id字段而是普通的title标题字段但是title字段一般比较长不会给它加索引。即便我们给title加了索引但是我们搜素的不是完整的值而是模糊的片段值例如搜索包含“手机”两个字的这个时候在传统数据库查询的流程如下 在上述流程中我们使用了like语句查询了一个模糊匹配值即便有索引也是无法生效的此时数据库就会逐条数据扫描包含“手机”两个字的记录。如果发现扫描的记录中不包含“手机”两个字就将这一条丢弃如果发现了包含的就将这一条记录存入结果集。 但是如果我们的tb_goods表中有1000万条数据本次查询就意味着我们要扫描1000万次那么它的性能可想而知是非常差的。所以“正向索引”在做局部内容检索的时候效率是比较差的。 二、倒排索引 同样是对上述的tb_goods表设置索引倒排索引会形成一个新的表这张表包含两个字段一个是“词条term”一个是“文档id”两者含义如下 ●文档document每条数据就是一个文档。 ●词条term文档按照语义分成的词语。 在tb_goods表中每一行商品信息就是一个文档。如果是订单表每行订单就是一个文档如果是用户表每个用户信息就是一个文档当然如果是面向一张网页那么整张网页就是一个文档。 文档中有很多很多数据这些数据都可以分成相应含义的词语例如“华为小米充电器”可以分为“华为”、“小米”和“充电器”等词语进而形成所谓的“词条”。 所以倒排索引在存储时会先将文档分成词条然后按照唯一的词条去关联相应词条的文档id。 例如上面的tb_goods表在形成倒排索引时会将数据库每一行title的名次拆分成词条而词条是不会重复的可以理解为词条是索引表的唯一索引如果不同行出现相同的词条他会将拥有相同词条的记录id放在文档id列以逗号分隔如下图 这张表后续不管是有一千个还是一万个数据都会分成一个个的词条相同的词条会统一记录在一行文档id列中。而倒排索引保证词条永远不会重复因为它的唯一性我们就可以为词条创建索引使用Hash法或者B树将来我们根据词条查找的速度就会非常快。 那么通过倒排索引建立的数据结构是如何快速查询的呢我们以搜索“华为手机”为例搜索流程如下 第一步会对用户输入的搜索数据进行分词 此时分出了“华为”和“手机”两个词条。 第二步按照分出的词条前往倒排索引表去匹配词条找到对应的文档id 这个时候可以查询到“华为”和“手机”两个词条对应所在的文档id。 第三步根据找到对应的文档id查询到相应的文档数据 第四步就是将找到的文档数据存入结果集展示给用户。 在上述步骤中一共进行了两次检索第一次检索是根据用户输入的词条去词条列表中搜索找打文档id第二次是根据文档id去原表中找到相应的文档记录。虽然进行了两次查询但每一次查询都是使用了索引列去查询term字段和id字段都是带索引的所以整体查询效率会比刚刚的正向查询的逐条扫描要高得多。 同时大家也能看出来倒排索引为什么叫“倒排”是因为正向是先找到文档再判断文档是否符合我们的要求。而倒排是反过来的它是基于词条创建的索引然后关联文档当查找的时候是先找到词再根据词找到对应的文档。 倒排索引更擅长于基于文档的内容去搜索文档场景更加复杂。比如想在网页中搜索一些关键字或者在错误日志中搜索一些异常信息的关键词或者搜索零碎的商品信息。 三、总结 1、什么是文档和词条? ●每一条数据就是一个文档 ●对文档中的内容分词得到的词语就是词条2、什么是正向索引? 基于文档id创建索引。查询词条时必须先找到文档而后判断是否包含词条。3、什么是倒排索引 对文档内容分词对词条创建索引并记录词条所在文档的信息。查询时先根据词条查询到文档id而后获取到文档。 以上就是关于正向索引和倒排索引的全部介绍下一篇我们来学习Elasticsearch与Mysql的概念与区别。 参考《黑马Elasticsearch全套教程》 转载请注明出处https://guangzai.blog.csdn.net/article/details/144005998
http://www.hkea.cn/news/14297147/

相关文章:

  • 关于做好网站建设的通知网站家建设培训学校
  • 哪里建网站性价比高营销与销售的区别
  • 安国手机网站设计如何从下载的视频查到原网站
  • 上海seo网站优化公司整套网站模板
  • 网站开发分析模板英国做电商网站有哪些
  • 做网站项目前怎么收集需求域名解析怎么设置
  • 三沙网站建设大型网站技术架构 pdf
  • 经营网站 备案seo网站优化插件
  • 建设网站需要注册证书吗怎么在网上做广告
  • 微网站建设公司哪家好东莞大朗网站设计
  • wix做的网站 网址是什么施工员证查询官方网站
  • 医疗网站前置备案如何判断网站是响应式的还是
  • 怎么做招聘网站的调研相城seo网站优化软件
  • 网站建设 策划方案邵阳市城乡建设厅网站
  • 襄阳网站建设开发办公空间设计网站
  • 美食网站开发与设计文献综述wordpress迁移器
  • 网站设计第一步怎么做wordpress不显示全文
  • 网站开发需会的课程如何推广自己的产品
  • 创造与魔法官方网站做自己喜欢的事做淘宝内部优惠券网站要钱么
  • 一站式网站搭建wordpress设置超链接
  • 邯郸wap网站建设定制手机网站
  • 更改网站的布局电商网站设计理念
  • 怎么建立自己网站免费商标设计网站
  • 怎么在后台设置网站的关键词网站建设合同注意事项
  • 做网站赚钱吗 怎么赚苏州有做网站的公司吗
  • wap网站搜索做视频投稿赚钱的网站
  • 安徽弘泰建设管理有限公司网站深圳建设局网站打不开
  • 做网站的流程方法西安专业网站设计
  • 云南省建设厅官方网站证书站长之家域名查询鹿少女
  • 朝阳免费网站制作汕头建设学校的网站