Lucene 和 es 的前世今生

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

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

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

es 的核心概念

Near Realtime

近实时,有两层意思:

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

Cluster 集群

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

Node 节点

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

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": "电子产品"
}

Index

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

Type

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

shard

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

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。

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

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

以上是一个简单的类比。

  • © 2019 GitHub, Inc.
  • Terms
  • Privacy
  • Security
  • Status
  • Help
  • Contact GitHub
  • Pricing
  • API
  • Training
  • Blog
  • About

转载来源:https://github.com/doocs/advanced-java/blob/master/docs/high-concurrency/es-introduction.md

Lucene 和 ElasticSearch 的前世今生相关推荐

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

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

  2. Elasticsearch 的前世今生

    作者:Medcl 转自链接 Elasticsearch 的前世今生 Original Medcl 弹性搜索 2019-06-26 需求的诞生 刘备一大早就来到了公司,一看张飞和关羽已经在公司了,就问道 ...

  3. 公司技术分享-全文技术分享Lucene VS ElasticSearch VS Solr

    全文检索 前言: 目前,我们最常使用的是关系型数据库进行数据的存储,数据库中的搜索很容易实现,通常都是使用sql语句进行 查询,而且能很快的得到查询结果.模型图如下: 但随着业务的复杂性,原有的关系型 ...

  4. lucene和Elasticsearch

    lucene和Elasticsearch 一.全文检索 1.什么是全文检索 1.1 数据分类 1.2 什么是全文检索 二.lucene 2.1 如何使用lucene 2.2 索引和搜索流程图 2.3 ...

  5. ElasticSearch特点|B+Tree|lucene倒排索引结构|lucene与elasticsearch的关系|基本概念

    ElasticSearch特点 1. 天然分片,天然集群: es 把数据分成多个shard,下图中的P0-P2,多个shard可以组成一份完整的数据,这些shard可以分布在集群中的各个机器节点中.随 ...

  6. Elasticsearch 的前世今生 【转】

    原文地址:http://www.sohu.com/a/324768840_100299155 01 需求的诞生 刘备一大早就来到了公司,一看张飞和关羽已经在公司了,就问道:"两位贤弟,今天来 ...

  7. 开源搜索引擎评估:lucene sphinx elasticsearch

    开源搜索引擎程序有3大类 lucene系,java开发,包括solr和elasticsearch sphinx,c++开发,简单高性能 Xapian,c++开发 搜索引擎程序这个名称不妥当,严格说来应 ...

  8. Elasticsearch 的前世今生(三国版)

    需求的诞生 刘备一大早就来到了公司,一看张飞和关羽已经在公司了,就问道:"两位贤弟,今天来的还蛮早啊."张飞一听就炸毛了,"大哥,你让我和二哥去做什么搜索功能,我们已经一 ...

  9. 《从Lucene到Elasticsearch:全文检索实战》已出版!

    #一.前言 决定在CSDN写博客的原因是想把自己解决过的问题.踩过的坑.总结出来的经验记录下来,作为编程之路的"笔记本",同时也能给遇到同样问题的人提供参考.节省时间,写书的初衷也 ...

最新文章

  1. 为什么我们需要比特币(BCH)
  2. abb限位开关已打开drv1_广告雕刻机限位开关触发
  3. Laravel 怎么查看执行的Sql语句
  4. WSL2.0解决:/bin/bash: xsel: command not found
  5. 微信企业者开发接口文档
  6. Bat To Exe Converter将bat转换为exe的方法
  7. 实战PHP皮皮虾去水印解析接口
  8. 探讨手机越狱和安装deb文件的几种方式研究
  9. 【GAN】生成式对抗网络论文笔记及TF2代码实现
  10. N个鸡蛋放到M个篮子中
  11. 优达学城 深度学习 任务3
  12. 卡片游戏--循环队列实现
  13. python变量名长度有限制吗_怎么去除 Python 下载文件时的文件名长度 50 限制
  14. CSS 的background-size:cover属性值和contain属性值
  15. 【python】判断闰年
  16. C语言中sqrt怎么声明标识符,sqrt在c语言中怎么用?
  17. 为什么要选择网站优化
  18. 36V转24V转20V转15V转12V转9V降压电源芯片众多型号
  19. python之turtle学习笔记
  20. 从零开始带你实战搭建Spring Cloud Alibaba商城项目

热门文章

  1. jQuery:从零开始,DIY一个jQuery(1)
  2. 10个优秀视差滚动插件
  3. 5个学习Linux命令站点推荐
  4. Web设计与开发终极资源大全
  5. Linux shell 常用命令
  6. LeetCode 383. Ransom Note
  7. 【AI视野·今日NLP 自然语言处理论文速览 第八期】Wed, 16 Jun 2021
  8. 【今日CV 视觉论文速览】Tue 21 Mar 2019
  9. DirectoryInfo类 c# 1614534016
  10. 窗体控件绑定泛型数组 0104 c#