前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Elasticsearch 有什么特点及应用场景?还有倒排索引,你有了解么

Elasticsearch 有什么特点及应用场景?还有倒排索引,你有了解么

作者头像
程序员小航
发布2020-11-23 11:52:36
1.7K0
发布2020-11-23 11:52:36
举报
文章被收录于专栏:程序员小航

前言

" 革命同志是块砖,哪里需要哪里搬!这不,老大发话,要我在组内做一个 Elasticsearch 技术分享。这不话题一转,开始看起来 ES 了。虽然很久之前用过 ELK 做过日志监控系统,但是毕竟时隔已久,还是得从头看起。当然手头的活也不能停,话不多说,开始分享。先看看什么是 ES? "

1

什么是 ES ?

Elasticsearch 是分布式搜索和分析引擎。

Elasticsearch 为所有类型的数据提供近实时(near real-time)的搜索和分析。

常用场景:

  1. 网站搜索
  2. ELK 日志采集,存储,分析
  3. 地理信息系统分析

像下图中使用的设计:

特点:

  1. ES是一个分布式文档存储,存储的数据都是序列化为 JSON documents 。
  2. 使用倒排索引存储数据,倒排索引比较适合全文本搜索。
  3. 基于Apache Lucene搜索引擎库,可以存储,检索文档及元数据。
  4. 支持 JSON 样式的查询语言 —— Query DSL,也支持 SQL 样式的查询。
  5. 集群部署,易于扩展。节点(node)分片(shard),将新的 node 添加到集群时,ES 会自动迁移 shard 到新 node 上,重新平衡集群。
    1. shard 分为两种 主分片(primary shard)和 副本分片 (replica shard)
    2. replica shard 存放的是 primary shard 的冗余副本 —— 可以防止集群故障,数据丢失,同时可以提高搜索或检索速度。
    3. 在创建索引时 primary shard 数量是固定的,而replica shard 数量是可以更改的。
    4. 分片由索引配置,分片越多,维护索引则开销则越大,分片大小越大,则 ES 在增减节点重新平衡集群时,分片移动时间越长。
  6. 集群恢复:跨集群复制 (CCR),可以自动将索引从主集群同步到热备份的辅助远程集群。

2

什么是倒排索引?

倒排索引也可以成为反向索引。

作为开发咱们经常接触到的就是 MySql,假设有一堆技术书籍,并且已经编上号。

  1. Java 并发编程之美
  2. Java 开发手册
  3. 深入分布式缓存
  4. Java 并发程序设计
  5. 算法
  6. 数据结构与算法

- 如果放在 MySql 里面就是这样

id

book_name

1

Java 并发编程之美

2

Java 开发手册

3

深入分布式缓存

4

Java 并发程序设计

5

算法

6

数据结构与算法

此时我想查询所有关于 并发 的书籍。

代码语言:javascript
复制
select * from table_book where book_name like %并发%;

然后会开始遍历表格,查找到 1和4两条记录。

- 如果是倒排索引处理的话

首先会将每个名称进行分词,比如 Java 并发编程之美 会被分为 Java 、并发、 编程、 之 、美。

分词结束之后按照词关联书籍的编号。

term

ids

Java

1、2、4

并发

1、4

编程

1

算法

5、6

分布式

3

...

...

在倒排索引中搜索并发,然后进行检索,就很容易定位到关于并发书籍的编号。

3

那什么是 Lucene?

Lucene 可以理解为一个开源的、高性能、可伸缩的信息搜索库。使用 Java 开发,封装了各种倒排索引和搜索的API。相当于一个组件。

而 ES 就是在 Lucene 之上进行的开发,从而可以高可用、集群部署、故障迁移、备份容灾等。

4

总结

就这么多,先知道个 ES 是干嘛的。后续再慢慢看、慢慢总结。

相关文档

[1] ES:

https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html

- <End /> -


历史文章 | 相关推荐

使用 Maven Archetype 创建项目模版

使用雪花算法生成流水号!

作者:刘志航,一个宅宅的北漂程序员。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员小航 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档