当前位置:   article > 正文

ElasticSearch搜索_car index

car index

ElasticSearch搜索

*************************************

一、简介

二、相关概念

三、工作机制

四、安装、配置、部署

五、Java Api

六、更多应用

七、其它

*************************************

###########################
一、简介
Elasticsearch是一个实时分布式搜索和分析引擎

分布式实时文件存储
实时分析的分布式搜索引擎
可以扩展到上百台服务器

作为开源分布式搜索和数据处理平台,Elasticsearch不仅仅是一个数据库,
同时它还是一个基于Lucene构建的开源、分布式、RESTful信息检索框架,能够实时搜索,并且稳定可靠,
EIK架构为编程人员提供了一个分布式的可扩展的信息检索和基于Lucene的全文搜索,基于Logstash的日志处理机制、基于Kibana的挖掘结果可视化的的机制。
Elasticsearch的支持插件机制,如与mongoDB、couchDB同步的River插件、中文分词插件、Hadoop插件、脚本插件等。
二、相关概念

1.Index、Type、Document、Field
Index是数据存储的地方,可以快速高效的堆索引中的数据进行全文索引,类似于RDBMS数据库中的Database;在Index下一般会有多个存储数据的Type,Type类似于Database的table,用来存放具体数据;Document类似于关系数据库的一行数据,在一个Type里的每一个Document都有一个唯一的ID作为区分。
Relational DB -> Databases -> Tables -> Rows -> Columns
Elasticsearch -> Indices   -> Types  -> Documents -> Fields

2.Mapping
Mapping定义索引下的Type的字段处理规则,如索引如何建立、索引数据类型、是否保存原始索引JSON文档,是否需要进行分词处理、如何进行分词处理等。
一般地,一个索引文件下能存储不同映像(Mapping)的类型文件(Types).

3.Cluster和Node

Elasticsearch中的Cluster是对外提供搜索服务的集群,组成这个集群的各个节点叫Node.集群Cluster是一组有着相同cluster.name的节点,他们协同工作,互相分享数据,提供了故障转移和扩展的功能。Node又分为IndexNode、DataNode等。节点之间是对等关系的(去中心化),而弱化的Master节点只不过多了维护集群状态的功能


4.Shards(分片)
Elasticsearch将一个完整的索引分成若干个部分,每个部分就是一个Shards,每个Shard实际上就是一个基于Lucene的索引。
Shards的数量一般在索引创建前制定,且索引创建后不能更改。

5.Replicas(备份)
Replics是索引的冗余备份,可用于防止数据丢失或用来做负载均衡。一般地,Elasticsearch会自动对索引请求进行负载均衡。

6.Recover
在有节点加入或退出集群Cluster或故障节点重新启动时,Elasticsearch会根据机器的负载情况,对索引分片Shards进行重新分配。

7.River
River是一个运行在Elasticsearch集群内部的插件,主要用来从外部获取数据,然后在Elasticsearch里创建索引。常见的有MongoDB、JDBC river Plugin等。

8.Gateway
是Elasticsearch索引数据快照的存储方式,当Elasticsearch集群关闭再重新启动时,就会从Gateway中读取索引数据快照。
Elasticsearch支持多种类型的Gateway,本地文件系统、分布式文件系统、Hadoop的HDFS

ElasticSearch是先把索引的内容保存到内存之中,当内存不够时再把索引持久化到硬盘中,同时它还有一个队列,是在系统空闲时自动把索引写到硬盘中。??????

9.Discover.zen
Discover.zen代表Elasticsearch的自动发现节点机制。Zen用来实现节点自动发现和Master节点选举,Master节点负责节点的加入和退出以及分片shard的重新分配。

10.Transport
Transport代表Elasticsearch内部节点或集群与客户端的交互方式,默认内部是使用TCP协议进行交互的,同时支持HTTP协议(JSON格式)、Thrift、Servlet等传输协议

三、工作机制
ElasticSearch中的Replica是副本的意思,创建副本的好处有两个,1,可以分流部分查询请求,2,如果集群中的某个分片丢失了,就可以使用这个副本将数据全部找回来,因为这个原因,副本分片和源分片不会放在同一节点上。ES中每一个索引都可以被分成多个分片,但不一定每个分片都有副本,但是一旦创建了副本,就会有主分片的说法(作为复制源的分片),分片和副本的数量可以在索引创建的时候指定。下图是副本和分片的示意图,分片和它的副本不会在同一个节点上。


在索引创建之后,你可以在任何时候动态地改变副本的数量,但是你事后不能改变分片的数量。  默认情况下,Elasticsearch中的每个索引被分片5个主分片和1套副本,这意味着,如果你的集群中至少有两个节点,你的索引将会有5个主
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/784686
推荐阅读
相关标签
  

闽ICP备14008679号