Java面试系列-ElasticSearch面试题20道,文档,索引,搜索,聚合,分词器,集群管理,索引模版,数据备份和恢复,安全机制,集群扩展,实时搜索,索引生命周期,节点发现,批量操作,基本架构

文章目录

      • 1. Elasticsearch的基本架构是什么?
      • 2. Elasticsearch中的Shard和Replica是如何工作的?
      • 3. Elasticsearch中的文档是如何存储的?
      • 4. Elasticsearch中的索引是如何创建的?
      • 5. Elasticsearch中的搜索是如何工作的?
      • 6. Elasticsearch中的聚合是如何工作的?
      • 7. Elasticsearch中的分词器是如何工作的?
      • 8. Elasticsearch中的文档更新是如何工作的?
      • 9. Elasticsearch中的文档删除是如何工作的?
      • 10. Elasticsearch中的批量操作是如何工作的?
      • 11. Elasticsearch中的集群管理是如何工作的?
      • 12. Elasticsearch中的节点发现是如何工作的?
      • 13. Elasticsearch中的集群健康状态是如何评估的?
      • 14. Elasticsearch中的索引模板是如何工作的?
      • 15. Elasticsearch中的索引生命周期管理是如何工作的?
      • 16. Elasticsearch中的搜索性能优化有哪些方法?
      • 17. Elasticsearch中的数据备份和恢复是如何工作的?
      • 18. Elasticsearch中的安全机制有哪些?
      • 19. Elasticsearch中的实时搜索是如何实现的?
      • 20. Elasticsearch中的集群扩展是如何工作的?

Gitee链接地址,建议收藏,后续我会对专栏进行整理,每篇文章进行校正和调整,然后统一存放在gitee仓库中

1. Elasticsearch的基本架构是什么?

答案
Elasticsearch的基本架构包括以下几个主要组件:

  • Node:一个Elasticsearch实例,可以是集群的一部分。
  • Cluster:一组节点,协同工作以提供扩展性和高可用性。
  • Index:文档的集合,类似于关系数据库中的表。
  • Type:已废弃的概念,以前用于表示索引中的不同文档类型。
  • Document:索引中的基本单位,类似于关系数据库中的行。
  • Shard:索引的物理划分,每个索引可以有多个分片。
  • Replica:分片的副本,用于提高可用性和查询性能。

2. Elasticsearch中的Shard和Replica是如何工作的?

答案

  • Shard:每个索引可以分为多个分片,每个分片是一个独立的Lucene索引。分片可以分布在整个集群的节点上,实现水平扩展。
  • Replica:每个分片可以有多个副本,副本用于提高可用性和查询性能。如果主分片不可用,副本可以提升为主分片。
  • 作用:分片用于扩展存储和查询能力,副本用于提高可用性和读取性能。

3. Elasticsearch中的文档是如何存储的?

答案

  • 倒排索引:Elasticsearch使用倒排索引存储文档,倒排索引将文档中的词映射到包含这些词的文档列表。
  • 字段存储:文档的原始内容可以存储在字段中,用于检索和显示。
  • 分词器:文档在存储前会被分词器处理,生成词条,用于构建倒排索引。

4. Elasticsearch中的索引是如何创建的?

答案

  • API:通过REST API或客户端库创建索引。
  • 映射:创建索引时可以指定映射(mapping),定义字段的数据类型和属性。
  • 设置:可以设置索引的分片数和副本数等属性。

示例代码

PUT /my-index
{
   
  "settings": {
   
    "number_of_shards": 3,
    "number_of_replicas": 2
  },
  "mappings": {
   
    "properties": {
   
      "title": {
    "type": "text" },
      "date": {
    "type": "date" }
    }
  }
}

5. Elasticsearch中的搜索是如何工作的?

答案

  • 查询解析:查询请求被解析成内部查询结构。
  • 分片查询:查询请求被分发到所有相关的分片。
  • 结果合并:每个分片返回的结果被合并,生成最终的搜索结果。
  • 评分:使用TF-IDF等算法对文档进行评分,按评分排序。

6. Elasticsearch中的聚合是如何工作的?

答案

  • 聚合:聚合操作用于对搜索结果进行统计分析,如计数、求和、平均值等。
  • 分片聚合:聚合操作在每个分片上独立执行,结果被合并。
  • 桶和度量:聚合可以分为桶聚合(如terms、range)和度量聚合(如avg、sum)。

示例代码

GET /my-index/_search
{
   
  "size": 0,
  "aggs": {
   
    "by_category": {
   
      "terms": {
   
        "field": "category"
      }
    }
  }

你可能感兴趣的:(java,面试,elasticsearch)