elasticsearch 的 使用

Elasticsearch 的使用

1. Elasticsearch 简介

什么是 Elasticsearch?

Elasticsearch 是一个开源的分布式 RESTful 搜索和分析引擎、可扩展的数据存储和向量数据库,能够解决不断涌现出的各种用例。作为 Elastic Stack 的核心,Elasticsearch 会集中存储您的数据,让您飞快完成搜索,微调相关性,进行强大的分析,并轻松缩放规模。

2. 安装与配置

安装 Elasticsearch

在本地安装(Windows/Linux/Mac)

官网下载

使用 Docker 安装

  1. 确保已安装 Docker。
  2. 拉取 Elasticsearch 官方镜像:
    1
    docker pull elasticsearch:8.10.0
  3. 启动容器:
    1
    docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:8.10.0
  4. 验证服务是否启动成功:
    1
    curl -X GET "localhost:9200/"

配置 Elasticsearch

  • 配置文件详解(elasticsearch.yml

启动与验证

  • 启动 Elasticsearch
    • 本地安装:运行 bin/elasticsearch
    • Docker 安装:容器启动后服务会自动运行。
  • 验证服务是否正常运行:
    1. 打开浏览器访问 http://localhost:9200
    2. 使用 curl 命令:
      1
      curl -X GET "localhost:9200/"
    3. 返回类似以下内容表示服务正常:
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      {
      "name": "your-node-name",
      "cluster_name": "elasticsearch",
      "cluster_uuid": "xxxxxxxxxxxx",
      "version": {
      "number": "8.10.0",
      "build_flavor": "default",
      "build_type": "docker",
      "build_hash": "xxxxxxxxxxxx",
      "build_date": "2025-04-01T00:00:00.000Z",
      "build_snapshot": false,
      "lucene_version": "9.10.0",
      "minimum_wire_compatibility_version": "7.17.0",
      "minimum_index_compatibility_version": "7.0.0"
      },
      "tagline": "You Know, for Search"
      }

3. 基本概念与操作

  • 核心概念
    • 索引(Index)
    • 文档(Document)
    • 类型(Type)
    • 映射(Mapping)
    • 分片与副本(Shard & Replica)
  • 基本操作
    • 创建索引
    • 添加文档
    • 更新文档
    • 删除文档
    • 查询文档

4. 查询与搜索

  • 查询 DSL(Domain Specific Language)
    • Match 查询
    • Term 查询
    • Range 查询
    • Bool 查询
  • 全文搜索
    • 分词器与分词过程
    • 高亮显示
  • 聚合(Aggregation)
    • Metric 聚合
    • Bucket 聚合
    • Pipeline 聚合

5. 高级功能

  • 分析与监控
    • 使用 Kibana 可视化数据
    • Elasticsearch 的监控 API
  • 集群管理
    • 节点与角色
    • 集群健康检查
    • 数据迁移与备份
  • 性能优化
    • 查询性能优化
    • 索引性能优化
    • 内存与存储优化

6. 实战案例

  • 使用 Elasticsearch 构建博客搜索功能
  • 实现电商平台的商品搜索
  • 日志分析与监控

7. 常见问题与解决方案

  • 启动失败的常见原因
  • 查询结果不准确的排查
  • 性能问题的优化建议

8. 参考资料

  • 官方文档
  • 社区资源
  • 推荐书籍