Elasticsearch基础知识!!!

Elasticsearch总结

ElasticSearch是一个基于Lucene的搜索服务器,它提供了一个分布式的全文搜索引擎和数据分析引擎,能够实现全文检索;结构化检索;数据分析,隐藏了复杂性使得操作变得更加简便灵活,elasticsearch提供了简单易用的restuful api接口以及java接口,Lucene:简单来说,就是一个jar包,里面包含了封装好的各种建立倒排索引,以及进行搜索的代码,包含各种算法,我们用java开发的时候,引入lucene.jar就可以进行开发了。

Elasticsearch的特点:

分布式的文档存储引擎,分布式的搜索引擎和分析引擎,

天然索引,
ES 所有数据都是默认进行索引的,这点和mysql正好相反,mysql是默认不加索引,要加索引必须特别说明,ES只有不加索引才需要说明。

天然分片,天然集群 ,
es 把数据分成多个shard,下图中的P0-P2,多个shard可以组成一份完整的数据,这些shard可以分布在集群中的各个机器节点中。随着数据的不断增加,集群可以增加多个分片,把多个分片放到多个机子上,已达到负载均衡,横向扩展。

Elasticsearch内的基本概念:

Near Realtime(NRT) (聂味儿胎模)近实时
es从数据写入到数据被搜索到有一个延时(大概1秒),基于es执行的搜索和分析 可以达到妙级

节点(Node)和集群(Cluster)
集群是一个或多个节点(服务器)的集合, 这些节点共同保存整个数据,并在所有节点上提供联合索引和搜索功能。一个集群由一个唯一集群ID确定,并指定一个集群名(默认为“elasticsearch”)。该集群名非常重要,因为节点可以通过这个集群名加入集群,一个节点只能是集群的一部分。

(document)文档
es中最小的数据单元,有json串组成,里面包含多个field,每个field即是一个数据字段。

(index)索引
包含一堆具有相似结构的文档数据,一个索引默认有5个primary shard,一个primary shard 对应一个replica shard

(type)类型
每个索引有一个或者多个type,type是index中的一个逻辑数据分类,一个type下的document,应该都有相同field

(Replica)副本
为了提高查询吞吐量或实现高可用性,可以使用分片副本。副本(replica)只是一个分片的精确复制,每个分片可以有零个或多个副本。

(Shards)分片
当有大量的文档时,由于内存的限制、硬盘能力、处理能力不足、无法足够快地响应客户端请求等,一个节点可能不够。在这种情况下,数据可以分为较小的称为分片的部分。每个分片可以放在不同的服务器上,因此,数据可以在集群的节点中传播。

(Field)字段
ElasticSearch里的最小单元 相当于数据的某一列,类似于json里一个键。

(Mapping)映射
模式映射(schema mapping,或简称映射)用于定义索引结构。Elasticsearch在映射中存储有关字段的信息。映射在文件中以JSON对象传送。

elasticsearch和数据库对比

索引(indices)--------------------------------Databases 数据库
类型(type)-----------------------------Table 数据表
文档(Document)----------------Row 行
字段(Field)-------------------Columns 列

Kibana

Kibana是一个基于Node.js的Elasticsearch索引库数据统计工具,可以利用Elasticsearch的聚合功能,生成各种图表,如柱形图,线状图,饼图等。
而且还提供了操作Elasticsearch索引数据的控制台,并且提供了一定的API提示,使得我们是用学习Elasticsearch更加的方便快捷
启动kibana,打开解压后的文件夹直接双击运行elasticsearch.bat文件就可以了

ik分词器

目前ik分词器是属于Elaseticsearch内的插件,版本也与Elasticsearch保持一致
启动ik分词器前需要去config内的kibana.yml进行修改文件,之后双击运行以kibana.bat结尾的文件就可以了
分词器是在搜索的查询时根据词语来进行分词,在根据分词进行搜索。

猜你喜欢

转载自blog.csdn.net/zhang_yuanbai/article/details/108659290