示例说明: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.rhkb.cn/news/433487.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一个 Java 语言简化处理 PDF 的框架,提供了一套简单易用的 API 接口,满足多样化需求又能简化开发流程的处理方案(附教程)

前言 当前市面上处理 PDF 文件的工具众多,但它们往往存在一定的局限性,比如复杂交互、功能单一等问题。尤其对于那些需要频繁生成或编辑 PDF 文档的应用场景来说,找到一个既能满足多样化需求又能简化开发流程的处理方案显得尤为重要。那么&a…

中国的互联网电商,终于还是“连上了”

什么才是更好的互联网? 答案很简单:真正的互联。 9月26日,据市场消息,京东物流和菜鸟速递将分别接入淘天、京东平台。同时,京东也将在“双11”前开通支付宝支付,时隔13年再度携手阿里支付体系。 消息一出…

【x**3专享#2】编译 uboot 和 kernel 的文件结构

虚拟机交叉编译环境配置及内核编译步骤说明书 请先查看前篇文章内容 1. 获取虚拟机 IP 地址 打开虚拟机终端,执行以下命令查看虚拟机 IP 地址:ifconfig或者ip addr记录 eth0 或 ens33 等网络接口的 inet 后面的 IP 地址 2. 使用 Xftp 连接虚拟机 打开…

Springboot中yml文件不生效原因分析及解决

在Spring Boot项目中,YML文件是常用的配置文件格式。然而,有时你可能会遇到YML文件中的配置不生效的问题。本文将分析可能的原因并提供解决方案。 1. 格式错误 YML文件非常敏感,任何缩进或语法错误都可能导致配置不被解析。确保使用两个空格…

基于YOLOv5s的无人机航拍输电线瓷瓶检测(附数据集与操作步骤)

本文主要内容:详细介绍了无人机航拍输电线瓷瓶检测的整个过程,从创建数据集到训练模型再到预测结果全部可视化操作与分析。 文末有数据集获取方式,请先看检测效果 现状 输电线路绝缘瓷瓶的检测主要依赖人工巡检。巡检人员需携带专业设备,攀…

Python:百度贴吧实现自动化签到

早知道,还是python。 Github项目仓库在这。 相关API 签到贴吧列表 签到分为两个接口,PC端签到一次经验2,而移动端签到则是一次经验6。该用哪个接口已经很明显了。不过这里还是列出PC端的签到API。 # PC端签到接口 # sign_url "https:…

ROS理论与实践学习笔记——2 ROS通信机制之通信机制实践

5.1 话题发布 需求描述:编码实现乌龟运动控制,让小乌龟做圆周运动。 实现分析: ①乌龟运动控制实现,关键节点有两个,一个是乌龟运动显示节点 turtlesim_node,另一个是控制节点,二者是订阅发布模…

用Swift实现验证回文字符串

如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。 字母和数字都属于字母数字字符。 给你一个字符串 s,如果它是 回文串 ,返回 true ;否则&#…

AI创作类工具系列之:芝士AI(paperzz)详细测评介绍

学生们!又到了写论文的时候~以前以为大家的论文都是一个字一个字敲出来,然后反复修改,熬着大夜改论文。 后来才知道原来大家都会利用工具辅助自己写论文啊!今天我就告诉大家一款非常好用的AI写作网站,节省时间&#xf…

代码随想录冲冲冲 Day58 图论Part9

47. 参加科学大会(第六期模拟笔试) 根据昨天的dijkstra进行堆优化 使用的原因是点多但边少 所以直接对于边进行操作 1.对于priority_queue来说 这是最小堆, 小于的话就是最大堆 之后由于是根据边来说的 所以新建一个Edge并且初始化一下 之后由于使用…

The Open Group 2024生态系统架构·可持续发展年度大会全面解读

在全球数字化转型加速的时代背景下,人工智能技术正以前所未有的速度重塑各行各业的生态系统。尤其是随着ChatGPT、Sora等技术的爆发,AIGC(人工智能生成内容)技术在多个领域展现出超越人类的能力,AGI(通用人…

C语言-线程

一,线程的概念 1,线程的定义 在 C 语言中,线程是程序执行的最小单位,它是进程中的一个实体,是被系统独立调度和分派的基本单位。 2、线程的特点 轻型实体:线程是一个轻型实体,它只拥有必不可少的资源,如程…

Spring Security 是一个强大的和高度可定制的身份验证和访问控制框架。它是 Spring 项目家族的一员,用于构建安全的 Java 应用程序。

Spring Security 是一个强大的和高度可定制的身份验证和访问控制框架。它是 Spring 项目家族的一员,用于构建安全的 Java 应用程序。Spring Security 提供了全面的安全服务,从基本的登录认证到复杂的访问控制,几乎涵盖了所有与安全相关的需求…

Paxos 协议详解:分布式系统一致性的基石

文章目录 1. 分布式系统与一致性问题1.1 分布式系统的定义1.2 一致性问题的起源1.3 CAP 定理及其影响1.4 分布式系统中的失败假设 2. Paxos 协议的背景与介绍2.1 Paxos 协议是什么2.3 Paxos 解决什么问题 3. Paxos 的基本原理3.1 Paxos 角色3.2 Paxos 的多数原则3.3 Paxos 协议…

音视频入门基础:FLV专题(1)——FLV官方文档下载

一、FLV简介 Flash Video(简称FLV),是一种网络视频格式,用作流媒体格式,它的出现有效地解决了视频文件导入Flash后,使导出的SWF文件体积庞大,不能在网络上有效使用等缺点。 一般FLV文件包在SW…

js删除emoji表情问题

emoji标签占位两个 &#xff0c;直接删除后一位会出现乱码符&#xff1b; 判断是否是emoji function isEmoji(char) {let code char.charCodeAt(0);return code>55296&&code<57343 } // 使用方法&#xff0c;传入单字符 console.log(isEmoji(1)); // false con…

手把手教你找到海外网红合作:海外红人营销渠道

在全球范围内&#xff0c;许多企业寻求与知名网红建立合作关系&#xff0c;以推广产品、共同创作内容或探索其他合作形式。以下是一些有效的方法来实现这一目标&#xff1a; 利用社交媒体平台&#xff1a;社交媒体是寻找海外网红的首选途径。平台如Instagram、YouTube和TikTok拥…

2025届 深圳 嵌入式岗 秋招上岸记录

文章目录 1 背景2 准备阶段2.1 前期2.1.1 掌握的技术栈2.1.2 项目经历2.1.3 比赛&奖学金经历 2.2 中期2.2.1 简历准备2.2.2 个人信息准备2.2.3 企业以及岗位信息的收集2.2.4 个人资料的准备 2.3 简历投递2.3.1 网申2.3.2 招聘会现场投递 3. 简历投递后3.1 测评3.2 笔试3.3 …

基于quill2.0的富文本编辑器,Fluent Editor,支持表格,图片,表情等

官网&#xff1a;Fluent Editor | 基于 Quill 2.0 的富文本编辑器 安装 npm i opentiny/fluent-editor quill 使用案例 <template><div class"publish-form-container"><!-- TODO --><div ref"quillEditorRef" class"quill…

【LLM多模态】视频理解模型Cogvlm-video和MVBench评测基准

note Cogvlm-video模型通过视频抽帧&#xff08;24帧&#xff0c;每帧大小为224 x 224&#xff09;后经过ViT进行图像编码&#xff08;ViT中添加了2x2的卷积核更好的压缩视觉信息&#xff09;&#xff0c;使用adapter模块更好的将视觉特征和文本特征对齐&#xff0c;得到的图像…