Elasticsearch 100问(上)

一、基本概念

1、ElasticSearch是什么:

Elasticsearch是一个分布式的,开源的NoSQL数据库。通常做为文档搜索数据库。

2、什么是索引(indices)

indices分为两种情况,一指索引,另一个是指往索引里插入数据的动作。索引可理解为类似于关系型数据库表的概念,而不是网络上大部分理解的数据库的概念。索引就是一张分布在不同服务器之上的大表。

3、什么是分片(shards)

一个或多个分片组成一个索引(indices)。理解为关系型数据库里的水平分表。

4、什么是分段(segment)

一个或多个分段组成一个分片。

5、什么是副本

ES将数据副本分为主从两部分,即主分片(primary shard)和副分片(replica shard)。

6、什么是分词器,分词

分词是指把一段话或一篇文章通过语义拆分成最小的单词。分词器是分词使用的软件。

7、什么是倒排索引

倒排索引就像传统图书馆找书所用到的卡片,需要先按顺序找出书名对应的卡片,上面标注书名,然后标注书所在的书架编号,然后通过书架编号才能找到我们需要的书。倒排索引中保存的是分词跟文档对应的ID。

8、什么是主节点

主节点的职责是和集群操作相关的内容,如创建或删除索引,跟踪哪些节点是群集的一部分并决定哪些分片分配给相关的节点。

9、什么是数据节点

数据节点是存储索引数据的节点,主要对索引进行增删改查操作。

10、什么是协调节点

当主节点和数据节点配置都设置为false的时候,该节点只能处理路由请求,处理搜索,分发索引操作。

11、什么是ES集群脑裂

脑裂是指一个集群选举产生了两个主节点,设置discovery.zen.minimum_master_nodes: (n/2)+1,n为有资格成为主节点的节点数(node.master=true)就可避免。

12、什么是ES的冷热架构

Hot-Warm Architecture。热节点存放用户最关心的热数据,搜索速度快;冷节点存放用户关心优先级低的冷数据,搜索速度慢,冷节点的磁盘与内存比可以比较大,就是同样的cpu,内存配置,冷节点可以存储更多的数据。

13、ES模板的作用是什么

当新建一个 ES 索引时,会自动匹配模板,完成索引的基础部分搭建。很多人ES用了很长的时间,还不知道有模板存在。

14、ES MAPPING作用是什么

映射(mapping)是定义一个文档以及其所包含的字段如何被存储和索引的方法。像关系型数据库的建表语句,ES中会默认创建。

15、keyword与text的区别是什么

ES 5.*之后,把string字段设置为了过时字段,引入text,keyword字段,这两个字段都可以存储字符串使用,但建立索引和搜索的时候是不太一样的

keyword:存储数据时候,不会分词建立索引

text:存储数据时候,会自动分词,并生成索引(这是很智能的,但在有些字段里面是没用的,所以对于有些字段使用text则浪费了空间)。

string默认会建立 keyword跟text两个字段,可以在mapping中设置只保存其中的一个。

16、index.merge.scheduler.max_thread_count参数该怎么设置

数据节点磁盘为sata硬盘的时候,该参数设置为1,磁盘为ssd的时候,可以不用设置,使用默认值。

二、ES模块

17、Cluster模块作用是什么?

Cluster模块是主节点执行集群管理的封装实现,管理集群状态,维护集群层面的配置信息。

18、allocation模块作用是什么?

allocation封装了分片分配相关的功能和策略。

19、Discovery模块作用是什么?

Discovery发现模块负责发现集群中的节点,以及选举主节点。

20、gateway模块作用是什么?

gateway负责对收到Master广播下来的集群元数据的持久化存储。

21、Indices模块作用是什么?

Indices索引模块管理全局级的索引设置。

22、HTTP模块作用是什么?

HTTP模块允许通过JSONoverHTTP的方式访问ES的API,HTTP模块本质上是完全异步的,这意味着没有阻塞线程等待响应,使用到Netty框架。

23、Transport模块作用是什么?

Transport传输模块用于集群内节点之间的内部通信。

24、Engine模块作用是什么?

Engine模块封装了对Lucene的操作及translog的调用,它是对一个分片读写操作的最终提供者。

三、ES 常用API

25、health API的作用是什么?

GET _cluster/health显示ES的健康状态,RED,YELLOW,GREEN, RED表示集群有主副本和副副本同时没有分配的情况,YELLOW表示存在副本没有分配,GREEN表示集群正常。

26、怎么创建索引

PUT 索引名

27、怎么关闭索引

POST 索引名/_close,或者在KIBANA界面manager-index Management中选中索引,关闭。

28、怎么打开索引

POST 索引名/_open,或者在KIBANA界面manager-index Management中选中索引,打开。

29、怎么删除索引

DELETE 索引名,或者在KIBANA界面manager-index Management中选中索引,删除。

30、检查索引名是否存在

HEAD 索引名

31、?help——帮助选项。

将在列表中提供 API 可用的字段,其中包含短名称和长名称、说明等。

GET _cat/indices?help

32、?h =-“ h”

使用上方“帮助”显示中的短名称或长名称指定要包括在结果中的字段。这些用逗号分隔,没有空格。

GET _cat/indices?h=docs.count,store.size

这样返回结果没有表头

33、?v——‘v’

在回复的顶部包括字段名称。

GET _cat/indices?v&h=docs.count,store.size

34、?s——‘s’

用于排序,使用列出的字段作为排序键。

如下所示:我们可能会看到节点列表。包括:返回字段名称,字段名称要显示并按名称name排序:GET /_cat/nodes?v&h=heap.percent,diskUsedPercent,cpu,master,name&s=name

35、统计所有这些logstash *前缀索引的文档总数的方法。

GET /_cat/count/logstash*?v

36、通配符索引列表获取

包含:大小,文档计数,状态等。

GET /_cat/indices/logstash*?v

37、找到size 最大的索引

GET /_cat/indices/logstash-*?v&h=index,ss&s=ss:desc

38、查看未分配的分片及原因

GET _cat/shards?v&h=index,shard,prirep,state,unassigned.reason&s=state

39、列举已定义的所有模板

GET /_cat/templates?v&s=order,name

40、分片分配查看

GET /_cat/allocation?v

41、运行任务查看

GET /_cat/pending_tasks?v

42、清理缓存

POST /_cache/clear

猜你喜欢

转载自blog.csdn.net/qq_28834355/article/details/113388544
今日推荐