自学内容网 自学内容网

Elasticsearch面试系列-02

1. 如何监控 Elasticsearch 集群状态?

Marvel可以很简单的通过Kibana监控Elasticsearch。支持实时查看集群健康状态和性能,也可以分析过去的集群、索引和节点指标。

2. ElasticSearch 是否有架构?

1、ElasticSearch可以有一个架构。架构是描述文档类型以及如何处理文档的不同字段的一个或多个字段的描述。

Elasticsearch中的架构是一种映射,它描述了JSON文档中的字段及其数据类型,以及它们应该如何在Lucene索引中进行索引。因此,在Elasticsearch术语中,我们通常将此模式称为“映射”。

2、Elasticsearch具有架构灵活的能力,这意味着可以在不明确提供架构的情况下索引文档。如果未指定映射,则默认情况下,Elasticsearch会在索引期间检测文档中的新字段时动态生成一个映射。

3. Elasticsearch 中的集群、节点、索引、文档、类型是什么?

群集:一个或多个节点(服务器)的集合,它们共同保存您的整个数据,并提供跨所有节点的联合索引和搜索功能。群集由唯一名称标识,默认情况下为“elasticsearch”。此名称很重要,因为如果节点设置为按名称加入群集,则该节点只能是群集的一部分。

节点:属于集群一部分的单个服务器。它存储数据并参与群集索引和搜索功能。

索引:就像关系数据库中的“数据库”。它有一个定义多种类型的映射。索引是逻辑名称空间,映射到一个或多个主分片,并且可以有零个或多个副本分片。 eg: MySQL =>数据库    ElasticSearch =>索引

文档:类似于关系数据库中的一行。不同之处在于索引中的每个文档可以具有不同的结构(字段),但是对于通用字段应该具有相同的数据类型。 MySQL=>Databases =>Tables =>Columns/Rows ElasticSearch=>Indices=>Types =>具有属性的文档

类型:是索引的逻辑类别/分区,其语义完全取决于用户。

4. 介绍一下常见电商搜索的整体技术架构?

5. Elasticsearch 中索引在设计阶段如何调优?

1)根据业务增量需求,采取基于日期模板创建索引,通过roll over API滚动索引;

2)使用别名进行索引管理;

3)每天凌晨定时对索引做force_merge操作,以释放空间;

4)采取冷热分离机制,热数据存储到SSD,提高检索效率;冷数据定期进行shrink操作,以缩减存储;

5)采取curator进行索引的生命周期管理;

5)仅针对需要分词的字段,合理的设置分词器;

6)Mapping阶段充分结合各个字段的属性,是否需要检索、是否需要存储等。

6. Elasticsearch 中索引在写入阶段如何调优?

1)写入前副本数设置为0;

2)写入前关闭refresh_interval设置为-1,禁用刷新机制;

3)写入过程中:采取bulk批量写入;

4)写入后恢复副本数和刷新间隔;

5)尽量使用自动生成的id。

7. Elasticsearch 中索引在查询阶段如何调优?

1)禁用wildcard;

2)禁用批量terms(成百上千的场景);

3)充分利用倒排索引机制,能keyword类型尽量keyword;

4)数据量大时候,可以先基于时间敲定索引再检索;

5)设置合理的路由机制。


原文地址:https://blog.csdn.net/qq_61863348/article/details/136911338

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!