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

Elasticsearch搜索流程及原理详解

Elasticsearch搜索流程及原理详解

  • 1. Elasticsearch概述
    • 1.1 简介
    • 1.2 核心特性
    • 1.3 应用场景
  • 2. Elasticsearch搜索流程
    • 2.1 搜索请求的发起
    • 2.2 查询的执行
    • 2.3 结果的聚合与返回
  • 3. Elasticsearch原理详解
    • 3.1 倒排索引
    • 3.2 分布式架构
    • 3.3 写入流程
    • 3.4 读取流程
  • 4. 技术细节与操作流程
    • 4.1 索引创建与配置
    • 4.2 数据写入
    • 4.3 搜索查询
    • 4.4 聚合查询
  • 5. 案例分析
    • 5.1 日志分析案例
      • 5.1.1 数据导入
      • 5.1.2 聚合查询
    • 5.2 监控系统案例
      • 5.2.1 数据模型
      • 5.2.2 搜索与报警
  • 6. 流程图与脑图
    • 6.1 搜索流程图
    • 6.2 架构脑图
  • 7. 总结
  • 2. 架构原理
    • 2.1 分布式架构
    • 2.2 节点与集群
    • 2.3 分片与副本
  • 3. 索引原理
    • 3.1 倒排索引机制
    • 3.2 文档索引过程
  • 4. 搜索机制
    • 4.1 查询执行流程
      • 4.1.1 客户端请求
      • 4.1.2 请求路由
      • 4.1.3 分片查询
      • 4.1.4 结果聚合
      • 4.1.5 结果返回
      • 4.1.6 技术细节与命令示例
    • 4.2 相关性评分
      • 4.2.1 评分算法
      • 4.2.2 影响因素
      • 4.2.3 技术细节与命令示例
  • 5. 数据写入与更新
    • 5.1 数据写入流程
      • 5.1.1 写入请求的接收
      • 5.1.2 路由到主分片
      • 5.1.3 写入主分片
      • 5.1.4 数据同步到副本分片
      • 5.1.5 写入确认与响应
      • 5.1.6 技术细节与命令示例
    • 5.2 数据更新与删除
      • 5.2.1 数据更新流程
      • 5.2.2 数据删除流程
      • 5.2.3 技术细节与命令示例
  • 6. 性能优化
    • 6.1 硬件优化
      • 6.1.1 存储设备选择
      • 6.1.2 CPU和内存配置
      • 6.1.3 网络优化
    • 6.2 索引设置优化
      • 6.2.1 分片和副本配置
      • 6.2.2 索引生命周期管理(ILM)
      • 6.2.3 映射和设置优化
    • 6.3 查询语句优化
      • 6.3.1 使用Filter Context
      • 6.3.2 避免深度分页
      • 6.3.3 预索引聚合字段
      • 6.3.4 避免使用复杂的脚本
  • 7. 配置与管理
    • 7.1 配置文件详解
      • 7.1.1 集群名称和节点设置
      • 7.1.2 网络设置
      • 7.1.3 路径设置
      • 7.1.4 内存锁定
      • 7.1.5 线程池和垃圾回收
    • 7.2 集群管理命令
      • 7.2.1 查看集群健康状态
      • 7.2.2 查看节点信息
      • 7.2.3 查看索引信息
    • 7.3 监控与日志
      • 7.3.1 监控集群
      • 7.3.2 查看日志

1. Elasticsearch概述

1.1 简介

Elasticsearch,一个基于Apache Lucene的开源分布式搜索和分析引擎,以其强大的全文搜索能力、分布式架构和近实时数据处理而闻名。它能够处理PB级别的数据,并提供毫秒级的查询响应。Elasticsearch通常与Logstash和Kibana一起使用,合称为ELK Stack,用于日志分析、监控、搜索等场景。

1.2 核心特性

Elasticsearch的核心特性包括:

  • 分布式架构:允许水平扩展,无单点故障。
  • 全文搜索:提供快速的文本分析和搜索能力。
  • 近实时搜索:数据更新后,几乎可以立即搜索到新数据。
  • 高可用性:通过副本分片实现高可用性。
  • 多租户:支持在单个集群上运行多个独立的索引。
  • RESTful API:提供易于使用的RESTful接口,简化开发。

1.3 应用场景

相关文章:

Elasticsearch搜索流程及原理详解

Elasticsearch搜索流程及原理详解 1. Elasticsearch概述1.1 简介1.2 核心特性1.3 应用场景2. Elasticsearch搜索流程2.1 搜索请求的发起2.2 查询的执行2.3 结果的聚合与返回3. Elasticsearch原理详解3.1 倒排索引3.2 分布式架构3.3 写入流程3.4 读取流程4. 技术细节与操作流程4…...

芯片之殇——“零日漏洞”(文后附高通64款存在漏洞的芯片型号)

芯片之殇——“零日漏洞”(文后附高通64款存在漏洞的芯片型号) 本期是平台君和您分享的第113期内容 前一段时间,高通公司(Qualcomm)发布安全警告称,提供的60多款芯片潜在严重的“零日漏洞”,芯片安全再一次暴露在大众视野。 那什么是“零日漏洞”?平台君从网上找了一段…...

【gitlab】gitlabrunner部署

1、下载镜像 docker pull gitlab/gitlab-runner:latest 2、启动gitrunner容器 docker run -d --name gitlab-runner --restart always \ -v /root/gitrunner/config:/etc/gitlab-runner \ ///gitlab-runner的配置目录,挂载在宿主机上方便修改,里面有config.…...

Flink监控checkpoint

Flink的web界面提供了一个选项卡来监控作业的检查点。这些统计信息在任务终止后也可用。有四个选项卡可以显示关于检查点的信息:概述(Overview)、历史(History)、摘要(Summary)和配置(Configuration)。下面依次来看这几个选项。 Overview Tab Overview选项卡列出了以…...

Ribbon 入门实战指南

Ribbon 是 Netflix 开发的一个开源项目,用于实现客户端负载均衡功能。它在微服务架构中广泛使用,并且是 Spring Cloud 生态中的重要组成部分。本文将带你从基础入门,逐步掌握如何在 Spring Cloud 项目中使用 Ribbon 实现客户端负载均衡。 1 负…...

uniapp: 微信小程序包体积超过2M的优化方法(主包从2.7M优化到1.5M以内)

一、问题描述 在使用uniapp进行微信小程序开发时,经常会遇到包体积超过2M而无法上传: 二、解决方案 目前关于微信小程序分包大小有以下限制: 整个小程序所有分包大小不超过 30M(服务商代开发的小程序不超过 20M) 单个…...

【百日算法计划】:每日一题,见证成长(026)

题目 给定一个包含正整数、加()、减(-)、乘(*)、除(/)的算数表达式(括号除外),计算其结果。 表达式仅包含非负整数,, - ,,/ 四种运算符和空格 。 整数除法仅保留整数部分。 * * 示例 1: 输入: “32X2” 输出: 7 import…...

【大模型】prompt实践总结

文章目录 怎么才算是好的prompt设计准则基本原则精炼原则(奥卡姆剃刀准则)具体原则真实操作技巧指定角色增加fewshots列表化代码化强调需求真实迭代大模型优化情形任务的定义和评估标准似乎可以再明确一下出现了一些之前没有考虑过的特殊情况,可以重新组织语言优化Prompt来处…...

在Qt(以及C++)中, 和 * 是两个至关重要的符号--【雨露均沾】

在Qt(以及C)中,& 和 * 是两个至关重要的符号,它们用于处理引用和指针。我们将逐个解释这两个符号,并提供简单示例来说明它们的用法。 1. 引用(&) 定义: 引用是一种别名,它不…...

本地部署Apache Answer搭建高效的知识型社区并一键发布到公网流程

文章目录 前言1. 本地安装Docker2. 本地部署Apache Answer2.1 设置语言选择简体中文2.2 配置数据库2.3 创建配置文件2.4 填写基本信息 3. 如何使用Apache Answer3.1 后台管理3.2 提问与回答3.3 查看主页回答情况 4. 公网远程访问本地 Apache Answer4.1 内网穿透工具安装4.2 创建…...

Ubuntu常见命令

关于export LD_LIBRARY_PATHcmake默认地址CMakelists.txt知识扩充/home:挂载新磁盘到 /home 子目录 关于export LD_LIBRARY_PATH 程序运行时默认的依赖库的位置包括lib, /usr/lib ,/usr/local/lib 通过命令export LD_LIBRARY_PATHdesired_path:$LD_LIBRARY_PATH追加…...

网络安全领域的最新动态和漏洞信息

网络安全领域的最新动态和漏洞信息涉及多个方面,以下是对这些信息的详细归纳: 一、网络安全领域最新动态世界互联网大会乌镇峰会召开2024年11月19日至22日,以“拥抱以人为本、智能向善的数字未来——携手构建网络空间命运共同体”为主题的202…...

华为开源自研AI框架昇思MindSpore应用案例:人体关键点检测模型Lite-HRNet

如果你对MindSpore感兴趣,可以关注昇思MindSpore社区 一、环境准备 1.进入ModelArts官网 云平台帮助用户快速创建和部署模型,管理全周期AI工作流,选择下面的云平台以开始使用昇思MindSpore,获取安装命令,安装MindSpo…...

每日OJ题_牛客_天使果冻_递推_C++_Java

目录 牛客_天使果冻_递推 题目解析 C代码 Java代码 牛客_天使果冻_递推 天使果冻 描述: 有 n 个果冻排成一排。第 i 个果冻的美味度是 ai。 天使非常喜欢吃果冻,但她想把最好吃的果冻留到最后收藏。天使想知道前 x个果冻中,美味…...

独立站干货:WordPress主机推荐

WordPress作为全球最受欢迎的独立站建设平台,提供了灵活性和强大的功能,使得建站变得简单而高效。本文将为您详细介绍WordPress建站的流程,并推荐几款实测后觉得好用的主机商。 WordPress建站流程 域名注册 首先需要注册一个域名&#xff0c…...

支持多种快充协议和支持多种功能的诱骗取电协议芯片

汇铭达XSP15是一款应用于手持电动工具、智能家居、显示器、音箱等充电方案的大功率快充协议芯片,支持最大功率100W给设备快速充电,大大缩短了充电时间。芯片支持通过UART串口发送电压/电流消息供其它芯片读取。支持自动识别连接的是电脑或是充电器。支持…...

Android中常见内存泄漏的场景和解决方案

本文讲解Android 开发中常见内存泄漏场景及其解决方案,内容包括代码示例、原因分析以及最佳实践建议。 1. 静态变量导致的内存泄漏 静态变量的生命周期与应用进程一致,如果静态变量持有了对 Activity 或其他大对象的引用,就可能导致内存泄漏…...

MyBatis Plus中的@TableId注解

TableId 注解用于将某个成员变量指定为数据表主键,以下为使用示例: import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lo…...

java基础概念33:常见API-Objects工具类

一、使用场景 二、成员方法 2-1、equals方法 源码: 2-2、isNull方法、nonNull方法 三、小结...

脚手架vue-cli,webpack模板

先安装node.js,它是服务器端,用于给页面提供服务。前端学习不需要会node.js,只需要学会node.js衍生出来的npm命令即可。 npm 是node.js的一个工具,作用是进行包管理,npm是node.js的包管理器。 接着安装脚手架&#xff…...

零基础设计模式——行为型模式 - 责任链模式

第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

【Oracle】分区表

个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...

JVM 内存结构 详解

内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: ​ 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 ​ 每个线程都有一个程序计数…...

【分享】推荐一些办公小工具

1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...

Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换

目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...

Web后端基础(基础知识)

BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端。 优点:维护方便缺点:体验一般 CS架构:Client/Server,客户端/服务器架构模式。需要单独…...

LangFlow技术架构分析

🔧 LangFlow 的可视化技术栈 前端节点编辑器 底层框架:基于 (一个现代化的 React 节点绘图库) 功能: 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...