授课语音

Elasticsearch 介绍与安装

一、什么是 Elasticsearch?

  • Elasticsearch 是一个基于 Apache Lucene 构建的开源分布式搜索和分析引擎。它具有强大的全文搜索能力,广泛用于日志分析、网站搜索、实时数据分析等应用场景。

  • 特点:

    • 分布式架构: Elasticsearch 是分布式的,数据会被自动分割成多个分片并分布到不同的节点上,支持大规模数据的水平扩展。
    • 全文搜索: 基于 Lucene 提供强大的全文检索功能,支持模糊搜索、短语匹配等。
    • 实时分析: 数据写入之后,几乎可以立即查询。
    • JSON 格式: 数据以 JSON 格式存储,便于与各种编程语言进行集成。

二、Elasticsearch 的组成

  1. 节点 (Node):

    • Elasticsearch 集群由一个或多个节点组成,每个节点都是一个单独的 Elasticsearch 实例。常见的节点类型包括:
      • 主节点(Master Node): 负责集群管理,决定数据的分布和分片的分配。
      • 数据节点(Data Node): 存储数据,执行数据查询和聚合。
      • 协调节点(Coordinating Node): 用于协调查询请求,将请求发送到相应的节点并汇总结果。
  2. 集群(Cluster):

    • 由多个节点组成,负责数据存储和处理。
  3. 索引(Index):

    • 一个索引包含了一组文档和相关的配置,类似于数据库中的表。
  4. 文档(Document):

    • 存储在索引中的数据对象,相当于数据库中的一行数据。
  5. 分片(Shard)和副本(Replica):

    • 分片(Shard): 每个索引会被分为多个分片,每个分片是一个独立的搜索单元。
    • 副本(Replica): 用来容错,副本是分片的副本,可以提供冗余存储和负载均衡。

三、Elasticsearch 的应用场景

  • 网站搜索引擎: 提供实时搜索和智能推荐。
  • 日志分析与监控: 收集和存储日志数据,通过 Kibana 展示和分析。
  • 数据分析: 用于大数据分析和实时数据处理。
  • 全文搜索: 为应用程序提供强大的搜索引擎能力。
  • 商业智能: 在企业内部进行数据查询和商业分析。

四、Elasticsearch 安装

1. 系统要求

  • 操作系统: 支持 Linux、Windows 和 macOS。
  • Java: Elasticsearch 需要 Java 8 或更高版本的支持,但自带 JDK,因此不需要单独安装。

2. 下载与安装

  • 步骤一: 下载 Elasticsearch

  • 步骤二: 解压并安装

    • Linux/macOS:
      tar -xzf elasticsearch-<version>.tar.gz
      cd elasticsearch-<version>
      
    • Windows: 解压 .zip 文件,并进入解压目录。
  • 步骤三: 启动 Elasticsearch

    • Linux/macOS:
      ./bin/elasticsearch
      
    • Windows: 双击 bin/elasticsearch.bat 启动。
  • 步骤四: 验证 Elasticsearch 是否启动成功

    • 打开浏览器,访问 http://localhost:9200
    • 如果显示类似以下内容,表示启动成功:
      {
        "name" : "node-1",
        "cluster_name" : "elasticsearch",
        "cluster_uuid" : "xxxxx",
        "version" : {
          "number" : "8.x.x",
          "build_flavor" : "default",
          "build_type" : "tar",
          "build_hash" : "xxxxx",
          "build_date" : "2024-xx-xxTxx:xx:xx.000Z",
          "build_snapshot" : false,
          "lucene_version" : "x.x",
          "minimum_wire_compatibility_version" : "x.x",
          "minimum_index_compatibility_version" : "x.x"
        },
        "tagline" : "You Know, for Search"
      }
      

3. 配置 Elasticsearch

  • 修改配置文件
    • 配置文件位于 config/elasticsearch.yml,可以修改集群名称、节点名称、网络设置等。
    • 常见配置项:
      • cluster.name: 设置集群名称。
      • node.name: 设置节点名称。
      • network.host: 设置节点的 IP 地址,默认为 localhost

4. 安装和配置插件(可选)

  • 安装 X-Pack 插件(用于安全和监控等功能)
    ./bin/elasticsearch-plugin install x-pack
    

五、常见操作

  1. 创建索引

    curl -X PUT "localhost:9200/my_index"
    
  2. 索引文档

    curl -X POST "localhost:9200/my_index/_doc/1" -H 'Content-Type: application/json' -d'
    {
      "title": "Elasticsearch Basics",
      "content": "Learn Elasticsearch in a few steps"
    }
    '
    
  3. 查询文档

    curl -X GET "localhost:9200/my_index/_search?q=Elasticsearch"
    
  4. 删除索引

    curl -X DELETE "localhost:9200/my_index"
    

六、总结

  • Elasticsearch 是一个强大的分布式搜索引擎,广泛应用于大数据分析、日志管理、实时搜索等领域。
  • 安装 Elasticsearch 相对简单,只需要下载解压并启动即可。
  • 配置和使用 Elasticsearch 时可以根据需求灵活调整,并且支持各种强大的查询与分析功能。
去1:1私密咨询

系列课程: