当前位置: 首页 > 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 在不同场景下的应用,从简单的全文搜索到复杂的数据分析和可视化。

 

     

相关文章:

示例说明:elasticsearch实战应用

Elasticsearch 是一个基于 Lucene 的分布式搜索和分析引擎,广泛应用于日志分析、全文搜索、数据可视化等领域。以下是 Elasticsearch 实战应用的一些关键点和步骤: 1. 环境搭建 首先,你需要在你的环境中安装和配置 Elasticsearch。 安装 E…...

暴力匹配算法和 KMP 算法的优缺点分别是什么?

暴力匹配算法和 KMP 算法的优缺点分别是什么? 在字符串匹配领域,暴力匹配算法和 KMP(Knuth-Morris-Pratt)算法是两种常见的方法。它们各有特点,适用于不同的场景。让我们深入探讨这两种算法的优缺点。 一、暴力匹配算法 (一)优点 简单易实现:暴力匹配算法的逻辑非常…...

web笔记

<form method"POST" action"{{ url_for(register) }}"><label for"username">用户名:</label><input type"text" id"username" name"username" required><br><label for"p…...

【网络安全】-访问控制-burp(1~6)

文章目录 前言   1.Lab: Unprotected admin functionality  2.Lab: Unprotected admin functionality with unpredictable URL   3.Lab: User role controlled by request parameter   4.Lab:User role can be modified in user profile  5.Lab: User ID controlled by…...

iOS 项目中的多主题颜色设计与实现

引言 在现代iOS应用中&#xff0c;用户对个性化体验的需求越来越高&#xff0c;除了功能上的满足&#xff0c;多样的视觉风格也是提升用户体验的重要手段之一。提供多主题颜色的切换功能不仅能满足用户的审美偏好&#xff0c;还可以让应用更具活力&#xff0c;适应不同场景下的…...

Android Camera2 与 Camera API技术探究和RAW数据采集

Android Camera2 Android Camera2 是 Android 系统中用于相机操作的一套高级应用程序接口&#xff08;API&#xff09;&#xff0c;它取代了之前的 Camera API。以下是关于 Android Camera2 的一些主要信息&#xff1a; 主要特点&#xff1a; 强大的控制能力&#xff1a;提供…...

[python][pipenv]pipenv的使用

pipenv 是一个 Python 开发工作流程的工具&#xff0c;它旨在将 pip 的包管理和 virtualenv 的虚拟环境管理结合起来。以下是一些基本的 pipenv 使用方法&#xff1a; 安装 pipenv&#xff1a; 如果你还没有安装 pipenv&#xff0c;可以通过 pip 安装它&#xff1a; pip insta…...

SpringSession微服务

一.在linux中确保启动起来redis和nacos 依赖记得别放<dependencyManagement></dependencyManagement>这个标签去了 1.首先查看已经启动的服务 docker ps 查看有没有安装redis和nacos 2.启动redis和nacos 发现没有启动redis和nacos,我们先来启动它。&#xff0c;…...

强化学习:通过试错学习最优策略---示例:使用Q-Learning解决迷宫问题

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是一种让智能体&#xff08;agent&#xff09;在与环境交互的过程中&#xff0c;通过最大化某种累积奖励来学习如何采取行动的学习方法。它适用于那些需要连续决策的问题&#xff0c;比如游戏、自动驾驶和机器人控制…...

OpenGL ES 纹理(7)

OpenGL ES 纹理(7) 简述 通过前面几章的学习&#xff0c;我们已经可以绘制渲染我们想要的逻辑图形了&#xff0c;但是如果我们想要渲染一张本地图片&#xff0c;这就需要纹理了。 纹理其实是一个可以用于采样的数据集&#xff0c;比较典型的就是图片了&#xff0c;我们知道我…...

【C#】CacheManager:高效的 .NET 缓存管理库

在现代应用开发中&#xff0c;缓存是提升性能和降低数据库负载的重要技术手段。无论是 Web 应用、桌面应用还是移动应用&#xff0c;缓存都能够帮助减少重复的数据查询和处理&#xff0c;从而提高系统的响应速度。然而&#xff0c;管理缓存并不简单&#xff0c;尤其是当你需要处…...

【数学分析笔记】第4章第2节 导数的意义和性质(2)

4. 微分 4.2 导数的意义与性质 4.2.3 单侧导数 f ′ ( x ) lim ⁡ Δ x → 0 f ( x Δ x ) − f ( x ) Δ x lim ⁡ x → x 0 f ( x ) − f ( x 0 ) x − x 0 f(x)\lim\limits_{\Delta x\to 0}\frac{f(x\Delta x)-f(x)}{\Delta x}\lim\limits_{x\to x_0}\frac{f(x)-f(x_0)…...

深度学习:迁移学习

目录 一、迁移学习 1.什么是迁移学习 2.迁移学习的步骤 1、选择预训练的模型和适当的层 2、冻结预训练模型的参数 3、在新数据集上训练新增加的层 4、微调预训练模型的层 5、评估和测试 二、迁移学习实例 1.导入模型 2.冻结模型参数 3.修改参数 4.创建类&#xff…...

Footprint Growthly Quest 工具:赋能 Telegram 社区实现 Web3 飞速增长

作者&#xff1a;Stella L (stellafootprint.network) 在 Web3 的快节奏世界里&#xff0c;社区互动是关键。而众多 Web3 社区之所以能够蓬勃发展&#xff0c;很大程度上得益于 Telegram 平台。正因如此&#xff0c;Footprint Analytics 精心打造了 Growthly —— 一款专为 Tel…...

进入xwindows后挂起键盘鼠标没有响应@FreeBSD

问题&#xff1a; 在升级pkg包后&#xff0c;系统无法进入xfce等xwindows&#xff0c;表现为黑屏和看见鼠标&#xff0c;左上角有一个白字符块&#xff0c;键盘鼠标没有反应&#xff0c;整个系统卡住。但是可以ssh登录&#xff0c;内部的服务一切正常。 表现 处理过程&#xf…...

CentOS7.9 snmptrapd更改162端口

端口更改前: 命令: netstat -an |grep 162 [root@kibana snmp]# netstat -an | grep 162 udp 0 0 0.0.0.0:162 0.0.0.0:* unix 3 [ ] STREAM CONNECTED 45162 /run/systemd/journal/stdout u…...

模糊测试SFuzz亮相第32届中国国际信息通信展览会

9月25日&#xff0c;被誉为“中国ICT市场的创新基地和风向标”的第32届中国国际信息通信展在北京盛大开幕&#xff0c;本次展会将在为期三天的时间内&#xff0c;为信息通信领域创新成果、尖端技术和产品提供国家级交流平台。开源网安携模糊测试产品及相关解决方案精彩亮相&…...

CMake学习

向大佬lyf学习&#xff0c;先把其8服务器中所授fine 文章目录 前言一、CMakeList.txt 命令1. 最外层CMakeLists1.1 cmake_minimum_required&#xff08;&#xff09;1.2 project&#xff08;&#xff09;1.3 set&#xff08;&#xff09;1.4 add_subdirectory&#xff08;&…...

书生·浦语大模型全链路开源开放体系

书生浦语大模型全链路开源开放体系 大模型应用生态的发展和繁荣是建立在模型基座强大的通用基础能力之上的。上海AI实验室联合团队研究认为&#xff0c;大模型各项性能提升的基础在于语言建模能力的增强&#xff0c;对于大模型的研究应回归语言建模本质&#xff0c;通过更高质量…...

PHP安装swoole扩展无效,如何将文件上传至Docker容器

目录 过程 操作方式 过程 在没有使用过云服务器以前,Docker这个平台一直都很神秘。在我申请了华为云服务器,并使用WordPress镜像去搭建自己的网站以后,我不得不去把Docker平台弄清楚,原因是我使用的一个主题需要安装swoole扩展,才能够正常启用。而要将swoole.so这个扩展…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段&#xff0c;极易成为DDoS攻击的目标。一旦遭遇攻击&#xff0c;可能导致服务器瘫痪、玩家流失&#xff0c;甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案&#xff0c;帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

页面渲染流程与性能优化

页面渲染流程与性能优化详解&#xff08;完整版&#xff09; 一、现代浏览器渲染流程&#xff08;详细说明&#xff09; 1. 构建DOM树 浏览器接收到HTML文档后&#xff0c;会逐步解析并构建DOM&#xff08;Document Object Model&#xff09;树。具体过程如下&#xff1a; (…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

&#x1f680; C extern 关键字深度解析&#xff1a;跨文件编程的终极指南 &#x1f4c5; 更新时间&#xff1a;2025年6月5日 &#x1f3f7;️ 标签&#xff1a;C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言&#x1f525;一、extern 是什么&#xff1f;&…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...