欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

ElasticSearch基础

时间:2023-04-18

ElasticSearch基础:java

什么是Elasticsearch:类似于查字典

Elasticsearch 是基于 Lucene 搜索引擎为核心构建 的Restful 风格 分布式 全文搜索引擎,每个字段都可以使索引并可以被搜索,可以快速存储、搜索、分析大量的数据。

全文检索是指对每一个词建立一个索引,指明该词在文章中出现的次数和位置。

当查询时,根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。

- [x] 什么是倒排索引:倒排索引使用的是词来作为索引关键字,同时记录了哪些文档中有这个词。

在搜索引擎中,每个文档都有一个对应的文档 ID,文档内容被表示为这些关键词的集合。

倒排索引就是 关键词到文档 ID 的映射,每个关键词都对应着很多的的文件,这些文件中都出现了这个关键词。
有了倒排索引,搜索引擎可以很方便地响应用户的查询。

为什么不使用B+Tree?

全文索引的文本字段通常会比较长,索引值本身会占用较大空间,从而会加大 B+ 树的深度,影响查询效率。全文索引往往需要全文搜索,不遵循最左匹配原则,使用 B+ 树可能导致索引失效。

要注意倒排索引的两个重要细节:

倒排索引中的所有词项对应一个或多个文档

倒排索引中的词项 根据字典顺序升序排列

Elasticsearch 的基本概念:

index 索引: 索引类似于mysql 中的数据库,Elasticesearch 中的索引是存在数据的地方,包含了一堆有相似结构的文档数据。type 类型: 类型是用来定义数据结构,可以认为是 mysql 中的一张表,type 是 index 中的一个逻辑数据分类document 文档: 类似于 MySQL 中的一行,不同之处在于 ES 中的每个文档可以有不同的字段,但是对于通用字段应该具有相同的数据类型,
文档是es中的最小数据单元,可以认为一个文档就是一条记录。Field 字段: Field是Elasticsearch的最小单位,一个document里面有多个fieldshard 分片: 单台机器无法存储大量数据,es可以将一个索引中的数据切分为多个shard,分布在多台服务器上存储。
有了shard就可以横向扩展,存储更多数据,让搜索和分析等操作分布到多台服务器上去执行,提升吞吐量和性能。replica 副本: 任何一个服务器随时可能故障或宕机,此时 shard 可能会丢失,因此可以为每个 shard 创建多个 replica 副本。
replica可以在shard故障时提供备用服务,保证数据不丢失,多个replica还可以提升搜索操作的吞吐量和性能。primary shard(建立索引时一次设置,不能修改,默认5个),replica shard(随时修改数量,默认1个),默认每个索引10个 shard,5个primary shard,5个replica shard,最小的高可用配置,是2台服务器。

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。