当前位置: 首页>数据库>正文

前端ES js官网 es前端框架

1、概述

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

官网:https://www.elastic.co/cn/products/elasticsearch 官网文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html github:https://github.com/elastic/elasticsearch

2、基础架构

前端ES js官网 es前端框架,前端ES js官网 es前端框架_基础架构,第1张

2.1 Gateway

Gateway是ES用来存储索引的文件系统,支持多种类型。

2.2 Distributed Lucence Directory

分布式的lucene框架。es就是基于Lucene框架开发的,Lucene框架服发现等。

2.3 ES模块

Index Module:索引模块。
Search Module:搜索模块。
Maping:映射解析模块。相当于mysql里的schema。
River:代表es的一个数据源,也是其它存储方式(如:数据库)同步数据到es的一个方法。它是以插件方式存在的一个es服务,通过读取river中的数据并把它索引到es中,官方的river有couchDB的,RabbitMQ的,Twitter的,Wikipedia。

2.4 Discover

Discovery是ES的节点发现模块,不同机器上的ES节点要组成集群需要进行消息通信,集群内部需要选举master节点,这些工作都是由Discovery模块完成。支持多种发现机制,如 Zen 、EC2、gce、Azure。

节点启动后会互相ping。根据在es.yml配置文件里找到对应的端口,开始选举,从各个节点任务的master中选,进行id字典排序,选择第一个。如果各个节点上都没有认为的master, 那么就从所有节点中选择。如果就一个节点 那么master就是她自己。

2.5 Scripting

Scripting用来支持在查询语句中插入javascript、python等脚本语言,scripting模块负责解析这些脚本,使用脚本语句性能稍低。

2.6 3rd Plugins

ES也支持多种第三方插件。

2.7 Transport

传输模块支持多种传输协议,如 Thrift、memecached、http,默认使用http。

2.8 JMX

JMX在Java编程语言中定义了应用程序以及网络管理和监控的体系结构、设计模式、应用程序接口以及服务。通常使用JMX来监控系统的运行状态或管理系统的某些方面,比如清空缓存、重新加载配置文件等。

2.9 RESTful style API

ES Restful API GET、POST、PUT、DELETE、HEAD含义:
1)GET:获取请求对象的当前状态。
2)POST:改变对象的当前状态。
3)PUT:创建一个对象。
4)DELETE:销毁对象。
5)HEAD:请求获取对象的基础信息。

3、基本概念

Elasticsearch和关系型数据术语对照表:
关系数据库 ⇒ 数据库 ⇒ 表 ⇒ 行 ⇒ 列(Columns)

Elasticsearch ⇒ 索引(Index) ⇒ 类型(type) ⇒ 文档(Docments) ⇒ 字段(Fields)

3.1 索引(Index)

ElasticSearch把数据存放到一个或者多个索引(indices)中。ElasticSearch内部用Apache Lucene实现索引中数据的读写。但是在ElasticSearch中被视为单独的一个索引(index),在Lucene中可能不止一个。这是因为在分布式体系中,ElasticSearch会用到分片(shards)和备份(replicas)机制将一个索引(index)存储多份。

3.2 文档类型(Type)

每个文档在ElasticSearch中都必须设定它的类型。文档类型使得同一个索引中在存储结构不同文档时,只需要依据文档类型就可以找到对应的参数映射(Mapping)信息,方便文档的存取。

3.3 文档(Document)

文档(Document)由一个或者多个字段(Field)组成。ES中的文档(Document)是没有固定的模式和统一的结构。

3.4 节点(Node)

单独一个ElasticSearch服务器实例称为一个节点。对于许多应用场景来说,部署一个单节点的ElasticSearch服务器就足够了。但是考虑到容错性和数据过载,配置多节点的ElasticSearch集群是明智的选择。

3.5 集群(Cluster)

集群是多个ElasticSearch节点的集合。是提供高可用与高性能的重要手段。

3.6 分片索引(Shard)

集群能够存储超出单机容量的信息。为了实现这种需求,ElasticSearch把数据分发到多个存储Lucene索引的物理机上。这些Lucene索引称为分片索引,这个分发的过程称为索引分片(Sharding)。

需要注意的是:集群中分片的数量需要在索引创建前配置好,而且服务器启动后是无法修改的,至少目前无法修改。

3.7 索引副本(Replica)

当集群负载增长,用户搜索请求可能会阻塞在单个节点上时,通过索引副本(Replica)机制就可以解决这个问题。在提供基础查询性能的同时,也保证了数据的安全性。即如果主分片数据丢失,ElasticSearch通过索引副本使得数据不丢失。索引副本可以随时添加或者删除,所以用户可以在需要的时候动态调整其数量。

3.8 网管(Gateway)

ES运行过程中需要的所有数据(文档,状态、索引参数等)都被存储在Gateway中。



https://www.xamrdz.com/database/6ga1928761.html

相关文章: