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

南宁网站建设加q.479185700百度投诉中心在线申诉

南宁网站建设加q.479185700,百度投诉中心在线申诉,dedecms 网站根目录,广东工程承包网站Elasticsearch进阶之#xff08;核心概念、系统架构、路由计算、倒排索引、分词、Kibana#xff09; 1、核心概念#xff1a; 1.1、索引#xff08;Index#xff09; 一个索引就是一个拥有几分相似特征的文档的集合。比如说#xff0c;你可以有一个客户数据的索引核心概念、系统架构、路由计算、倒排索引、分词、Kibana 1、核心概念 1.1、索引Index 一个索引就是一个拥有几分相似特征的文档的集合。比如说你可以有一个客户数据的索引可以有一个产品目录的索引还可以有一个订单数据的索引。一个索引由一个名字来标识必须全部是小写字母并且当我们要对这个索引中的文档进行索引、搜索、更新和删除的时候都要使用到这个名字。在一个集群中可以定义任意多的索引。 能搜索的数据必须索引这样的好处是可以提高查询速度比如新华字典前面的目录就是索引的意思目录可以提高查询速度 1.2、类型Type 在一个索引中你可以定义一种或多种类型。 一个类型是你的索引的一个逻辑上的分类/分区其语义完全由你来定。通常会为具有一组共同字段的文档定义一个类型。不同的版本类型发生了不同的变化 1.3、文档Document 一个文档是一个可被索引的基础信息单元也就是一条数据。 比如你可以拥有某一个客户的文档某一个产品的一个文档当然也可以拥有某个订单的一个文档。文档以 JSONJavascript Object Notation格式来表示而 JSON 是一个到处存在的互联网数据交互格式。 在一个 index/type 里面你可以存储任意多的文档。 1.4、字段Field 相当于是数据表的字段对文档数据根据不同属性进行的分类标识。 1.5、映射Mapping mapping 在处理数据的方式和规则方面做了一些限制如某个字段的数据类型、默认值、分析器、是否被索引等等。这些都是映射里面可以设置的其它就是处理 ES 里面数据的一些使用规则设置也叫做映射按着最优规则处理数据对性能提高很大因此才需要建立映射并且需要思考如何建立映射才能对性能更好。 1.6、分片Shards 一个索引可以存储超出单个节点硬件限制的大量数据。比如一个具有 10 亿文档数据的索引占据 1TB 的磁盘空间而任一节点都可能没有这样大的磁盘空间。或者单个节点处理搜索请求响应太慢。为了解决这个问题Elasticsearch 提供了将索引划分成多份的能力每一份就称之为分片。当你创建一个索引的时候你可以指定你想要的分片的数量。每个分片本身也是一个功能完善并且独立的“索引”这个“索引”可以被放置到集群中的任何节点上。 分片很重要主要有两方面的原因 允许你水平分割 / 扩展你的内容容量。允许你在分片之上进行分布式的、并行的操作进而提高性能/吞吐量。 至于一个分片怎样分布它的文档怎样聚合和搜索请求是完全由 Elasticsearch 管理的对于作为用户的你来说这些都是透明的无需过分关心。 1.7、副本Replicas 在一个网络 / 云的环境里失败随时都可能发生在某个分片/节点不知怎么的就处于离线状态或者由于任何原因消失了这种情况下有一个故障转移机制是非常有用并且是强烈推荐的。为此目的Elasticsearch 允许你创建分片的一份或多份拷贝这些拷贝叫做复制分片(副本)。 复制分片之所以重要有两个主要原因 在分片/节点失败的情况下提供了高可用性。因为这个原因注意到复制分片从不与原/主要original/primary分片置于同一节点上是非常重要的。扩展你的搜索量/吞吐量因为搜索可以在所有的副本上并行运行。 总之每个索引可以被分成多个分片。一个索引也可以被复制 0 次意思是没有复制或多次。一旦复制了每个索引就有了主分片作为复制源的原来的分片和复制分片主分片的拷贝之别。分片和复制的数量可以在索引创建的时候指定。在索引创建之后你可以在任何时候动态地改变复制的数量但是你事后不能改变分片的数量。默认情况下Elasticsearch 中的每个索引被分片 1 个主分片和 1 个复制这意味着如果你的集群中至少有两个节点你的索引将会有 1 个主分片和另外 1 个复制分片1 个完全拷贝这样的话每个索引总共就有 2 个分片我们需要根据索引需要确定分片个数。 1.8、分配Allocation 将分片分配给某个节点的过程包括分配主分片或者副本。如果是副本还包含从主分片复制数据的过程。这个过程是由 master 节点完成的。 2、系统架构 一个运行中的 Elasticsearch 实例称为一个节点而集群是由一个或者多个拥有相同cluster.name 配置的节点组成 它们共同承担数据和负载的压力。当有节点加入集群中或者从集群中移除节点时集群将会重新平均分布所有的数据。 当一个节点被选举成为主节点时 它将负责管理集群范围内的所有变更例如增加、删除索引或者增加、删除节点等。 而主节点并不需要涉及到文档级别的变更和搜索等操作所以当集群只拥有一个主节点的情况下即使流量的增加它也不会成为瓶颈。 任何节点都可以成为主节点。我们的示例集群就只有一个节点所以它同时也成为了主节点。 作为用户我们可以将请求发送到集群中的任何节点 包括主节点。 每个节点都知道任意文档所处的位置并且能够将我们的请求直接转发到存储我们所需文档的节点。 无论我们将请求发送到哪个节点它都能负责从各个包含我们所需文档的节点收集回数据并将最终结果返回給客户端。 Elasticsearch 对这一切的管理都是透明的。 3、路由计算 当索引一个文档的时候文档会被存储到一个主分片中。 Elasticsearch 如何知道一个文档应该存放到哪个分片中呢当我们创建文档时它如何决定这个文档应当被存储在分片1 还是分片 2 中呢首先这肯定不会是随机的否则将来要获取文档的时候我们就不知道从何处寻找了。实际上这个过程是根据下面这个公式决定的 routing 是一个可变值默认是文档的 _id 也可以设置成一个自定义的值。 routing 通过hash 函数生成一个数字然后这个数字再除以 number_of_primary_shards 主分片的数量后得到余数 。 这个分布在 0到number_of_primary_shards-1 之间的余数就是我们所寻求的文档所在分片的位置。这就解释了为什么我们要在创建索引的时候就确定好主分片的数量 并且永远不会改变这个数量因为如果数量变化了那么所有之前路由的值都会无效文档也再也找不到了。 所有的文档 API get 、 index 、 delete 、 bulk 、 update 以及 mget 都接受一个叫做 routing 的路由参数 通过这个参数我们可以自定义文档到分片的映射。一个自定义的路由参数可以用来确保所有相关的文档——例如所有属于同一个用户的文档——都被存储到同一个分片中。 4、倒排索引 什么是倒排索引倒排索引也叫反向索引我们通常理解的索引是通过key寻找value与之相反倒排索引是通过value寻找key故而被称作反向索引。 下面我们用一个简单的例子描述一下倒排索引的作用过程 假如现在有三份数据文档内容分别是 为了创建索引ES引擎通过分词器将每个文档的内容拆成单独的词称之为词条或term再将这些词条创建成不含重复词条的排序列表然后列出每个词条出现在哪个文档结果如下页所示 这种结构由文档中所有不重复的词的列表构成对于其中每个词都有至少一个文档与之关联。这种由属性值来确定记录的位置的结构就是倒排索引带有倒排索引的文件被称为倒排文件。 将上表转为更直观的图片来展示倒排索引 其中几个核心术语需要着重理解 词条term索引里面最小的存储和查询单元对于英文来说是一个词对于中文来说一般指分词后的一个词。 词典Term Dictionary也叫字典是词条的组合。搜索引擎的通常索引单位是单词单词词典是文档集合中出现过的所有单词构成的字符串集合单词词典内每条索引项记载单词本身的一些信息以及指向倒排索引的指针。 倒排表Post list一个文档通常由多个词组成倒排表记录的是某个词在哪些文档里出现过及出现的位置。每个记录称为一个倒排项Posting倒排表记录的不单单是文档编号还记录了词频等信息。 倒排文件Inverted File所有单词的倒排列表往往顺序地存储在磁盘的某个文件里这个文件被称之为倒排文件倒排文件是存储倒排索引的物理文件。 词典和倒排表是 Lucene中很重要的两种数据结构是实现快速检索的重要基石。词典和倒排文件是分两部分存储的词典在内存中而倒排文件存储在磁盘。 5、分词 5.1、ES分词 前面我们说了倒排索引的原理我们需要构建一个单词词典但是这个词典里面的数据怎么来呢我们需要对输入的东西进行分词。这个ES已经考虑过了所以它内置了一些分词器但是中国文化博大精深有时候自己断句都会有误差所以我们会用一些国人的插件进行中文分词。下面重点介绍ES分词原理、内置分词和中文分词。 5.2、ES分词是如何实现 Analysis分析是通过Analyzer分析器实现的分析也是有步骤的下面我们说一下Analyzer的组成。 分词器主要由三部分组成 Character Filters 字符过滤器 比方说剔除html代码、特殊符号等等可以有多个字符过滤器Tokenizer 分词器 对语句进行分词只能有一个Token Filter token过滤器 对词进行过滤、或者转小写、等等可以有多个token filter依次执行 5.3、ES内置分词器分析 我们知道了分词器的组成只需要再知道它的一些实现即可。我们也列出来方便查看 standard 默认的分词器按词分类并且小写处理。这里我们举个例子其余大家照葫芦画瓢就行 我这里是利用Kibana的dev tool进行api调试大家也可以用postman等工具进行测试。ES提供_analyze api来测试分词。 5.4、ES指定分析器 举个例子按英文拆分它支持不同的语言例如arabic, armenian, basque, bengali, bulgarian, catalan, czech, dutch, english, finnish, french, galician, german, hindi, hungarian, indonesian, irish, italian, latvian, lithuanian, norwegian, portuguese, romanian, russian, sorani, spanish, swedish, turkish. 上面例子典型对中文就不太友好中文分词要比英文分词难英文都以空格分隔中文理解通常需要上下文理解才能有正确的理解比如 [苹果不大好吃]和[苹果不大好吃]这两句意思就不一样。 5.5、IK分词器 前面的结果显然不符合我们的使用要求所以我们需要下载 ES 对应版本的中文分词器。 我们这里采用 IK 中文分词器下载地址为: https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v7.8.0 将解压后的后的文件夹放入 ES 根目录下的 plugins 目录下重启 ES 即可使用。 我们这次加入新的查询参数analyzer:“ik_max_word” 6、Kibana Kibana 是一个免费且开放的用户界面能够让你对 Elasticsearch 数据进行可视化并让你在 Elastic Stack 中进行导航。你可以进行各种操作从跟踪查询负载到理解请求如何流经你的整个应用都能轻松完成。 LinuxCentOS下载安装Kibana参考前面的博客即可https://blog.csdn.net/sxdtzhaoxinguo/article/details/129057179
http://www.dnsts.com.cn/news/37163.html

相关文章:

  • 怎么进wordpress后台茂名seo顾问服务
  • 网站开发技术招聘网站建设管理工作自查报告
  • 衡阳建设学校网站最让顾客心动的促销活动
  • 网站建设的市场容量h5模板怎么制作
  • 威海网站建设费用dns 解析错误 网站
  • 网站上怎么做弹幕效果图网站开发后如何维护
  • seo做的不好的网站有哪些新乡seo公司
  • 茂名建网站在农村做相亲网站怎么样
  • 高能建站系统怎么收费jsp购物网站开发 论文
  • 手机网站建设外贸业务员
  • 怎样黑公司的网站关键词seo排名优化推荐
  • 公司部门名称及部门职能网站百度搜索情况和反链接优化建议
  • 百度竞价找谁做网站导购wordpress主题
  • 站长之家收录查询网站里面的链接怎么做
  • 企业网站的设计与开发发布网站域名设置
  • 做一个营销型的网站多少钱锦州网站建设哪家好
  • 佛山专业的免费建站门户网站集群建设方案
  • 购物网站如何做推广网页设计入门与应用
  • 什么网站需要备案网络推广人员是干什么的
  • 佛山新网站制作机构网站建设 方案
  • 做个购物网站多少钱网络推广培训如何
  • 建筑设计人才招聘网站网站拒绝了您的访问
  • 自己可以建设一个网站要钱怎么做一个微信公众号
  • 海报在线制作网站建网站怎么样才能流畅
  • 创意设计师个人网站企业网络营销策划
  • 福州网站建站建设南宁市建设工程信息网
  • 门户网站系统架构我的页面设计
  • 空间网站大全购物网站建设价位
  • 网站建设公司哪家专业关键词优化举例
  • 昆明微信网站建设wordpress设置多域名多站点