ElasticSearch学习随笔之基础介绍

ElasticSearch

1、ElasticSearch学习随笔之基础介绍
2、ElasticSearch学习随笔之简单操作
3、ElasticSearch学习随笔之java api 操作
4、ElasticSearch学习随笔之SpringBoot Starter 操作
5、ElasticSearch学习随笔之嵌套操作
6、ElasticSearch学习随笔之分词算法
7、ElasticSearch学习随笔之高级检索

ElasticSearch,创始人 Shay Banon(谢巴农)
本文主讲 ElasticSearch 基础介绍。


文章目录

  • ElasticSearch
  • 前言
  • 一、ElasticSearch是什么?
    • 1.1 ElasticSearch 与 Lucene 的关系
    • 1.2 ES 解决Lucene使用缺点的最好方案(对比 solr)
  • 二、ES 与 关系型数据库对比理解
  • 三、ES 中的核心概念
    • 3.1 索引 index
    • 3.2 映射 mapping
    • 3.3 字段 field
    • 3.4 字段类型 type
    • 3.5 文档 document
    • 3.6 集群 cluster
    • 3.7 节点 node
    • 3.8 分片和副本 shards & replicas
      • 3.8.1 分片
      • 3.8.2 副本
  • 总结


前言

本文主要对ElasticSearch基础进行讲解,认识 ElasticSearch


一、ElasticSearch是什么?

ElasticSearch(简称 ES) 是用 JAVA 开发的当前最流行的开源的企业级搜索引擎。
具有如下特点:实施搜索、快速、稳定、可靠,安装使用方便。
客户端支持:Java, .Net, PHP, Python, Ruby等多种语言。

1.1 ElasticSearch 与 Lucene 的关系

Lucene 是迄今为止性能较好、功能全面的搜索引擎库框架 (库),但是,如果在项目中想直接用 Lucene 框架,则必须用 Java 作为开发语言将 Lucene 集成到应用中,所以,Lucene 具有以下缺点:

  1. 只能在 Java 中使用,以 jar 包的方式集成到项目中。
  2. 创建索引 和 索引搜索的代码复杂,而且随着不同版本变化,代码有差异。
  3. 不支持集群,不能很好的支持大型项目。
  4. 索引数据在同一服务器,占用服务器硬盘,公用空间少。

1.2 ES 解决Lucene使用缺点的最好方案(对比 solr)

虽然 Solr 也是一个全文检索应用,但和 ES 还是有不同的地方。
总结如下

  1. 当单纯的对已有数据进行搜索时,Solr 更快。
  2. 当实施建立索引时,Solr 会产生 io 阻塞,查询性能就会瞬间变差;ES 是准实时的,有明显的优势。
  3. Solr 利用 ZK 进行分布式管理,而 ES 自身带有分布式协调管理器。
  4. Solr 支持更多的数据格式, JSON, XML, CSV,而 ES 仅支持 JSON

请看下面两张图,对已有的静态数据检索是,Solr 要更快(第一张图),但实时建立索引是,Solr 会产生 io 阻塞,查询性能瞬间跌到低谷;而 ES 则是准实时更新索引的,及时在更新数据是也可以提供很快的检索服务(第二张图)。

ElasticSearch学习随笔之基础介绍_第1张图片
ElasticSearch学习随笔之基础介绍_第2张图片

二、ES 与 关系型数据库对比理解

关系型数据库 ES
Database(数据库) Index(索引库)
Table(表) Type(类型)
Row(行) Document(文档)
Column(列) Field(字段)

三、ES 中的核心概念

3.1 索引 index

索引就是有相似特征的文档的集合, 比如:客户数据,产品数据 索引等。
一个索引由一个名字来标识(必须全部小写字母),相当于关系数据库的库名。
增删改查都要用到索引名称。

3.2 映射 mapping

mapping是处理数据的方式和规则方面做一下限制,确定 Document 里面字段的 数据类型默认值分词器是否被索引是否存储 等等。

3.3 字段 field

相当于关系型数据库的 字段(列)。

3.4 字段类型 type

每一个字段都要对应一个类型,这里是一些基本的数据类型:Text、keyword、byte、string、int、boolean 等。
还有复杂的数据类型:数组、JSON对象嵌套。
ES 还支持地理位置搜索。

3.5 文档 document

文档是可被索引的基础单元,类似 MySQL的一条记录,用 JSON 来表示。

3.6 集群 cluster

集群是由多个节点组织在一起,共同持有整个数据,并一起提供索引和搜索功能。

3.7 节点 node

一个节点就是集群里面的已一台服务器。

3.8 分片和副本 shards & replicas

3.8.1 分片

一个索引可以存储超出单个节点的大量数据,但是没有节点是有足够的磁盘空间的,即便有,单个节点处理搜索请求也太慢,为了解决这些问题,ES 提供了将索引划分成多份,这些份就是 分片

3.8.2 副本

在网络环、云 里面,节点故障是避免不了的,在某个分片或者节点离线的情况下,有个故障转移机制是非常有用并且强烈推荐的。为此,ES 允许把创建分片拷贝成多份,有备无患,这些拷贝出来的就是 副本

好的,ES 基础就介绍到这里吧~~~

总结

例如:ES 作为目前企业级搜索的最佳解决方案,了解完基本内容,马上上手使用起来。

你可能感兴趣的:(JAVA后台,搜索引擎,java,数据仓库,中间件,elasticsearch,搜索引擎)