01. Elasticsearch基础

1.1 Elasticsearch介绍

  1、什么是 Elasticsearch ?

      1. 使用 java 语言开发的一套开源的全文搜索引擎

      2. 用于搜索、日志管理、安全分析、指标分析、业务分析、应用性能监控等多个领域

      3. 底层基于 Lucene 开源库开发,提供 restAPI,可以被任何语言调用

      4. 支持分布式部署,可水平扩展

      5. 更新迭代快、社区活跃、文档丰富

  2、es功能

      1. 分布式的搜索引擎和数据分析引擎

      2. 数据分析:电商网站,最近7天牙膏销量排行前十商家(举例)

      3. 全文检索,结构化检索,数据分析

      4. 全文检索:我想搜索商品名称包含牙膏的商品,select * from products where product_name like “%牙膏%”

      5. 结构化检索:我想搜索商品分类为日化用品的商品都有哪些,select * from products where category_id=’日化用品’

      6. 部分匹配、自动完成、搜索纠错、搜索推荐

      7. 数据分析:我们分析每一个商品分类下有多少个商品,select category_id,count(*) from products group by category_id

      8. 对海量数据进行实时的处理

  3、es特点

      1. 可以作为一个大型分布式集群(数百台服务器)技术,处理PB级数据,服务大公司;也可以运行在单机上,服务小公司

      2. Elasticsearch不是什么新技术,主要是将全文检索、数据分析以及分布式技术,合并在了一起,才形成了独一无二的ES;

      3. lucene(全文检索),商用的数据分析软件(也是有的),分布式数据库(mycat)

      4. 对用户而言,是开箱即用的,非常简单,作为中小型的应用,直接3分钟部署一下ES,就可以作为生产环境的系统来使用了,数据量不大,操作不是太复杂

      5. 数据库的功能面对很多领域是不够用的(事务,还有各种联机事务型的操作);

      6. 特殊的功能,比如全文检索,同义词处理,相关度排名,复杂数据分析,海量数据的近实时处理;

      7. Elasticsearch作为传统数据库的一个补充,提供了数据库所不不能提供的很多功能

1.2 节点 Node、集群 Cluster 和分片 Shards

  1、概念说明

      1. ElasticSearch 是分布式数据库,允许多台服务器协同工作,每台服务器可以运行多个实例。

      2. 单个实例称为一个节点(node)

      3. 一组节点构成一个集群(cluster)。

      4. 分片是底层的工作单元,文档保存在分片内,分片又被分配到集群内的各个节点里,每个分片仅保存全部数据的一部分。

猜你喜欢

转载自www.cnblogs.com/xiaonq/p/12799730.html