当前位置: 首页 > news >正文

示例说明:elasticsearch实战应用

Elasticsearch 是一个基于 Lucene 的分布式搜索和分析引擎,广泛应用于日志分析、全文搜索、数据可视化等领域。以下是 Elasticsearch 实战应用的一些关键点和步骤:

1. 环境搭建

首先,你需要在你的环境中安装和配置 Elasticsearch。

安装 Elasticsearch

你可以通过以下几种方式安装 Elasticsearch:

  • Docker: 使用 Docker 容器来运行 Elasticsearch。
    docker run -d --name elasticsearch -p 92:92 -p 93:93 -e "discovery.type=single-node" elasticsearch:7.
  • 包管理器: 使用包管理器安装,如 apt 或 yum
    sudo apt-get install elasticsearch
  • 手动下载: 从官网下载并解压。 

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.1.-linux-x86_64.tar.gz
tar -xzf elasticsearch-7.1.-linux-x86_64.tar.gz
cd elasticsearch-7.1./

启动 Elasticsearch

在安装完成后,启动 Elasticsearch 服务。

./bin/elasticsearch 

2. 基本操作

Elasticsearch 的基本操作包括索引的创建、文档的添加、查询等。

创建索引

curl -X PUT "localhost:92/my_index" -H 'Content-Type: application/json' -d'
{
  "mappings": {
    "properties": {
      "field1": { "type": "text" },
      "field2": { "type": "keyword" }
    }
  }
}
'
添加文档

curl -X POST "localhost:92/my_index/_doc/1" -H 'Content-Type: application/json' -d'
{
  "field1": "value1",
  "field2": "value2"
}
'
查询文档

curl -X GET "localhost:92/my_index/_search" -H 'Content-Type: application/json' -d'
{
  "query": {
    "match": {
      "field1": "value1"
    }
  }
}
'

3. 高级应用

Elasticsearch 不仅支持基本的搜索功能,还支持复杂的数据分析和可视化。

聚合查询

聚合查询可以用来对数据进行统计分析。

curl -X GET "localhost:92/my_index/_search" -H 'Content-Type: application/json' -d'
{
  "aggs": {
    "my_agg": {
      "terms": {
        "field": "field2"
      }
    }
  }
}
'

数据可视化

使用 Kibana 可以对 Elasticsearch 中的数据进行可视化。

  • 安装 Kibana:
    docker run -d --name kibana -p 561:561 kibana:7.1.

4. 性能优化

为了提高 Elasticsearch 的性能,可以考虑以下几个方面:

  • 分片和副本: 合理设置分片和副本的数量。
  • 索引优化: 使用合适的数据类型和分析器。
  • 硬件配置: 使用高性能的硬件,如 SSD。

5. 安全配置

Elasticsearch 默认没有启用安全功能,建议在生产环境中启用。

  • 启用安全: 配置 xpack.security.enabled 为 true
  • 用户管理: 创建和管理用户角色和权限。

6. 监控和日志

使用 Elastic Stack(ELK)来监控和分析 Elasticsearch 的性能和日志。

  • Logstash: 用于日志收集和处理。
  • Beats: 轻量级数据采集器。

通过以上步骤,你可以开始使用 Elasticsearch 进行实战应用,并根据具体需求进行扩展和优化。

示例1:电商网站的全文搜索

假设你正在开发一个电商网站,用户可以通过关键字搜索商品。你可以使用 Elasticsearch 来实现高效的全文搜索功能。

1. 创建索引

首先,创建一个名为 products 的索引,并定义商品的字段。

curl -X PUT "localhost:92/products" -H 'Content-Type: application/json' -d'
{
  "mappings": {
    "properties": {
      "name": { "type": "text" },
      "description": { "type": "text" },
      "price": { "type": "float" },
      "category": { "type": "keyword" }
    }
  }
}
'

2. 添加商品文档

products 索引中添加一些商品文档。

curl -X POST "localhost:92/products/_doc/1" -H 'Content-Type: application/json' -d'
{
  "name": "iPhone 13",
  "description": "The latest iPhone with advanced camera features.",
  "price": 999.99,
  "category": "Electronics"
}
'

curl -X POST "localhost:92/products/_doc/2" -H 'Content-Type: application/json' -d'
{
  "name": "Samsung Galaxy S21",
  "description": "A powerful Android smartphone with a great display.",
  "price": 899.99,
  "category": "Electronics"
}
'

3. 搜索商品

用户可以通过关键字搜索商品。例如,搜索所有包含 "iPhone" 的商品。

 curl -X GET "localhost:92/products/_search" -H 'Content-Type: application/json' -d'
{
  "query": {
    "match": {
      "name": "iPhone"
    }
  }
}
'

示例2:数据可视化

使用 Kibana 对 Elasticsearch 中的数据进行可视化。

1. 安装和启动 Kibana

docker run -d --name kibana -p 561:561 kibana:7.1.

2. 配置 Kibana

配置 Kibana 连接到 Elasticsearch。

3. 创建可视化

在 Kibana 中创建一个饼图,展示不同日志级别的分布。

  1. 打开 Kibana 的“Visualize”页面。
  2. 选择“Create visualization”。
  3. 选择“Pie”图表类型。
  4. 选择 logs 索引。
  5. 配置聚合,使用 level 字段进行分组。
  6. 保存并查看可视化结果。

通过这些示例,你可以看到 Elasticsearch 在不同场景下的应用,从简单的全文搜索到复杂的数据分析和可视化。

 

     

http://www.lryc.cn/news/451234.html

相关文章:

  • 暴力匹配算法和 KMP 算法的优缺点分别是什么?
  • web笔记
  • 【网络安全】-访问控制-burp(1~6)
  • iOS 项目中的多主题颜色设计与实现
  • Android Camera2 与 Camera API技术探究和RAW数据采集
  • [python][pipenv]pipenv的使用
  • SpringSession微服务
  • 强化学习:通过试错学习最优策略---示例:使用Q-Learning解决迷宫问题
  • OpenGL ES 纹理(7)
  • 【C#】CacheManager:高效的 .NET 缓存管理库
  • 【数学分析笔记】第4章第2节 导数的意义和性质(2)
  • 深度学习:迁移学习
  • Footprint Growthly Quest 工具:赋能 Telegram 社区实现 Web3 飞速增长
  • 进入xwindows后挂起键盘鼠标没有响应@FreeBSD
  • CentOS7.9 snmptrapd更改162端口
  • 模糊测试SFuzz亮相第32届中国国际信息通信展览会
  • CMake学习
  • 书生·浦语大模型全链路开源开放体系
  • PHP安装swoole扩展无效,如何将文件上传至Docker容器
  • Web3.0 应用项目
  • Linux 学习笔记(十六)—— 重定向与缓冲区
  • 828华为云征文|WordPress部署
  • 华为开源自研AI框架昇思MindSpore应用案例:计算高效的卷积模型ShuffleNet
  • 《C++ 小游戏:简易飞机大战游戏的实现》
  • SpringCloud源码:服务端分析(二)- EurekaServer分析
  • 插槽slot在vue中的使用
  • 针对考研的C语言学习(定制化快速掌握重点2)
  • [C++][IO流][流输入输出][截断理解]详细讲解
  • 阿里云部署1Panel(失败版)
  • 九、设备的分配与回收