目录

1 lucene 和 es 的前世今生

2 es 的核心概念

2.1 Near Realtime

2.2 Cluster 集群

2.3 Node 节点

2.4 Document & field

2.4.1 Index

2.4.2 Type

2.4.3 shard

2.4.4 replica

3 es 核心概念 vs. db 核心概念


1 Lucene 和 es 的前世今生

lucene 是最先进、功能最强大的搜索库。如果直接基于 lucene 开发,非常复杂,即便写一些简单的功能,也要写大量的 Java 代码,需要深入理解原理。

elasticsearch 基于 lucene,隐藏了 lucene 的复杂性,提供了简单易用的 restful api / Java api 接口(另外还有其他语言的 api 接口)。

  • 分布式的文档存储引擎
  • 分布式的搜索引擎和分析引擎
  • 分布式,支持 PB 级数据

Lucene简单使用_赵广陆的博客-CSDN博客本文主要介绍几个方面,为什么使用Lucene使用场景,解决的问题,Lucene的入门使用,以及Lucene一些语法(增删改查)。一简述Lucene概念:磁盘上的一些邮件,文档等各种文件,通过工具,把其变得有结构性,就是他们的信息扫描,记录位置,记录内容,建成索引。这样你就可以通过这些索引快速找到这些文件位置以及想要的内容。就像查字典一样,字典的拼音表和部首检字表就相当于字典的索引,按着拼音或者偏旁部首查,会很快,不用自己从头找到尾…,Lucene就是这样的一个工具,他帮我们建了字典的查询目录,就是索引。我https://blog.csdn.net/ZGL_cyy/article/details/118278175

2 es 的核心概念

2.1 Near Realtime

近实时,有两层意思:

  • 从写入数据到数据可以被搜索到有一个小延迟(大概是 1s)
  • 基于 es 执行搜索和分析可以达到秒级

2.2 Cluster 集群

集群包含多个节点,每个节点属于哪个集群都是通过一个配置来决定的,对于中小型应用来说,刚开始一个集群就一个节点很正常。

2.3 Node 节点

Node 是集群中的一个节点,节点也有一个名称,默认是随机分配的。默认节点会去加入一个名称为 elasticsearch 的集群。如果直接启动一堆节点,那么它们会自动组成一个 elasticsearch 集群,当然一个节点也可以组成 elasticsearch 集群。

2.4 Document & field

文档是 es 中最小的数据单元,一个 document 可以是一条客户数据、一条商品分类数据、一条订单数据,通常用 json 数据结构来表示。每个 index 下的 type,都可以存储多条 document。一个 document 里面有多个 field,每个 field 就是一个数据字段。

{"product_id": "1","product_name": "iPhone X","product_desc": "苹果手机","category_id": "2","category_name": "电子产品"
}

2.4.1 Index

索引包含了一堆有相似结构的文档数据,比如商品索引。一个索引包含很多 document,一个索引就代表了一类相似或者相同的 ducument。

2.4.2 Type

类型,每个索引里可以有一个或者多个 type,type 是 index 的一个逻辑分类,比如商品 index 下有多个 type:日化商品 type、电器商品 type、生鲜商品 type。每个 type 下的 document 的 field 可能不太一样。

2.4.3 shard

单台机器无法存储大量数据,es 可以将一个索引中的数据切分为多个 shard,分布在多台服务器上存储。有了 shard 就可以横向扩展,存储更多数据,让搜索和分析等操作分布到多台服务器上去执行,提升吞吐量和性能。每个 shard 都是一个 lucene index。

2.4.4 replica

任何一个服务器随时可能故障或宕机,此时 shard 可能就会丢失,因此可以为每个 shard 创建多个 replica 副本。replica 可以在 shard 故障时提供备用服务,保证数据不丢失,多个 replica 还可以提升搜索操作的吞吐量和性能。primary shard(建立索引时一次设置,不能修改,默认 5 个),replica shard(随时修改数量,默认 1 个),默认每个索引 10 个 shard,5 个 primary shard,5个 replica shard,最小的高可用配置,是 2 台服务器。

这么说吧,shard 分为 primary shard 和 replica shard。而 primary shard 一般简称为 shard,而 replica shard 一般简称为 replica。

3 es 核心概念 vs. db 核心概念

es db
index 数据库
type 数据表
docuemnt 一行数据

以上是一个简单的类比。

ElasticSearch前世今生lucene相关推荐

  1. ElasticSearch 基本原理(三)ElasticSearch与Lucene、Solr、Mysql的关系

    信息检索包含内容非常广,包含文本(搜索引擎). 图片(以图搜索).音频(歌曲识别).视频等多种类型数据的检索.为了高效的检索,通常都用建立索引的方式提高检索速度.因为不同类型的数据存储格式.特征提取方 ...

  2. Solr vs Elasticsearch vs Lucene

    最近看到有一个客户他们用的是Elasticsearch, 说实话,本人对Elasticsearch之前了解的比较少,准确地说,对"搜索引擎"这块了解的比较少.今天就各种搜索,收集了 ...

  3. ElasticSearch底层Lucene的执行流程与细节

    ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java开发的,并作为Apach ...

  4. Elasticsearch - 搜索引擎Lucene

    1.1. Scaling Lucene 怎样在Lucene之上构建一个分布式.高度伸缩.接近实时的搜索引擎呢? 让我们回顾一下在搜索引擎(基于lucene)伸缩性这条路上都做了那些尝试,并且elast ...

  5. 【Elasticsearch】Lucene 8 新特性

    1.概述 翻译:What's new in Lucene 8 Apache Lucene 8在几周前发布,有许多令人兴奋的新特性和改进.以下是其中的一些亮点: 2.查询快捷键 在Lucene 7中执行 ...

  6. 【Elasticsearch】Lucene 中的 Stored Fields 存储优化 自定义 存储类型 序列化 方式

    1.概述 转载:Lucene 中的 Stored Fields 存储优化 1 背景 Qunar 酒店的搜索和 suggest 是基于 Lucene 构建的,在我们的使用场景中,由于召回和排序是作为两个 ...

  7. lucene和elasticsearch的前世今生、elasticsearch的核心概念、elasticsearch核心概念 vs. 数据库核心概念(来自学习资料)

    1.Lucene和elasticsearch的前世今生 lucene,最先进.功能最强大的搜索库,直接基于lucene开发,非常复杂,api复杂(实现一些简单的功能,写大量的java代码),需要深入理 ...

  8. Lucene 和 ElasticSearch 的前世今生

    Lucene 和 es 的前世今生 lucene 是最先进.功能最强大的搜索库.如果直接基于 lucene 开发,非常复杂,即便写一些简单的功能,也要写大量的 Java 代码,需要深入理解原理. el ...

  9. Elasticsearch(包括Lucene介绍)

    Lucene 简介 Lucene 是一种高性能.可伸缩的信息搜索(IR)库,在 2000 年开源,最初由鼎鼎大名的 Doug Cutting 开发,是基于 Java 实现的高性能的开源项目. Luce ...

最新文章

  1. inputstream怎么写给前端_写给“正在焦虑的设计师们”的一封信
  2. 万维网与HTTP协议
  3. tensorflow之tf.train.exponential_decay()指数衰减法
  4. dfs hdfs 修改文件名称_CDH6.3.2生产更换HDFS 数据目录
  5. android 爆炸动画,一个可以给view显示粒子爆炸/绽放效果的android库 Bloom
  6. 将字符串中的html标签编译,将字符串中的HTML标签包含的内容移除
  7. 错觉图片生成实验 - 旋转花
  8. 7.Oracle数据库SQL开发之 算术运算
  9. 计算机软件毕业设计项目源码大全
  10. 移动宽带服务器维护,移动宽带 设置服务器
  11. arduino智能闹钟_要写一个Arduino的电子闹钟程序,板子是Arduino UNO,和一个实时钟的芯片DS1307,开发环境是Arduino-1.0.2...
  12. 苹果手微信显示无法连接服务器,iPhone手机无法运行微信的4种解决技巧
  13. 2019的百度网盘下载速度太慢老是限速怎么解决?
  14. 有一个人愿意参加第一届校园活力健美操这
  15. 用树莓派做服务器运行博客网页
  16. 赵栋 201771010137 第三周学习总结
  17. 2018年4月份 软件发明专利培训
  18. 版本管理工具使用之svn
  19. 网络时间协议NTP介绍
  20. CSS3--通过Animation实现简单的手指点击动画

热门文章

  1. CUDA out of memory. Tried to allocate 16.00 MiB (GPU 0; 6.00 GiB total capacity;总结(1)
  2. Inside Raccoon Stealer V2
  3. DIY-BETAFPV和DIY(ESP-01F+E19-900M20S2模块)915MHz信号测试对比
  4. 糖代谢紊乱及糖尿病的检查题库【1】
  5. 基于C6748 DSP+FPGA的声学多普勒流速剖面仪ADCP信号处理系统
  6. Camera AE(自动曝光)原理与问题
  7. 图片压缩后模糊怎么办 这5款无损压缩网站你要知道
  8. 未配置商户号配置怎么设置_设置和配置
  9. 跟我一起学 React + dva + Mockjs(9 个视频)
  10. 《软件供应商手册:SBOM的生成和提供》解读