Elasticsearch是做什么的?

初识elasticsearch

官方网站:Elasticsearch:官方分布式搜索和分析引擎 | Elastic

Elasticsearch是做什么的?

Elasticsearch 是一个分布式搜索和分析引擎,专门用于处理大规模数据的实时搜索、分析和存储。它基于 Apache Lucene 构建,能够快速、高效地执行全文搜索、结构化搜索以及数据分析任务。由于其强大的功能,Elasticsearch 常用于以下几种场景:

1. 全文搜索
Elasticsearch 提供快速、精确的全文搜索,支持复杂查询如模糊匹配、短语搜索、词条权重,广泛用于内容管理系统、电子商务、社交平台等。

2. 数据分析
通过聚合功能,Elasticsearch 可高效进行实时数据分析,支持多维聚合查询,适用于日志分析、业务数据分析等场景。

3. 日志与监控
结合 Elastic Stack(Logstash、Kibana),Elasticsearch 实现实时日志采集、分析和可视化,常用于系统监控、错误检测等。

4. 数据存储
作为分布式文档存储,Elasticsearch 可水平扩展,处理海量数据,保证高可用性和故障冗余。

5.地理位置查询
支持地理空间查询,适用于地图应用、物流、外卖等基于位置的服务场景。

核心特点

倒排索引:Elasticsearch 使用倒排索引来快速查找文档中包含特定词语的条目,特别适合全文搜索场景。

分布式架构:它天生支持水平扩展,允许在集群中分布和存储数据,保证性能和高可用性。

实时性:数据索引和搜索可以在毫秒级内完成,非常适合需要实时响应的数据查询场景。

RESTful API:通过简单的 RESTful API 进行操作,便于与其他系统集成。

典型应用场景

  1. 搜索引擎:用于内容搜索、产品搜索(如电商网站)、文档搜索等。
  2. 日志分析:通过 Elastic Stack(包括 Logstash 和 Kibana),构建日志管理和监控系统。
  3. 推荐系统:电商、流媒体、社交平台等使用 Elasticsearch 进行个性化推荐。
  4. 实时数据分析:企业实时分析海量数据,用于业务决策。

倒排索引是什么?和MySQL数据库有什么不同?

倒排索引(Inverted Index)是一种数据结构,广泛用于全文搜索引擎中。它的主要作用是将文档与其包含的单词进行关联,从而实现快速的文本检索。

基本原理:

        文档与词汇表的映射:倒排索引将每个单词(或词项)映射到包含该单词的文档列表中。相比于传统的正排索引(即存储文档到词汇的映射),倒排索引更加高效。

        结构:倒排索引通常包括两个主要部分:词汇表和文档列表。

假设有三个文档:

        文档1:我 爱 编程

        文档2:我 爱 学习

        文档3:编程 很有趣

构建倒排索引后的结构如下:

倒排索引与 MySQL 数据库的不同:

  • 数据存储结构

    • 倒排索引:主要用于存储词项与文档之间的映射,更加适合文本搜索。
    • MySQL:使用行或列存储数据,通常是基于表的关系型数据库。
  • 查询性能

    • 倒排索引:在处理全文搜索时,可以快速查找包含特定词项的所有文档,支持复杂的查询。
    • MySQL:虽然支持索引(如B树索引),但在处理复杂的文本搜索时性能不如倒排索引。
  • 更新效率

    • 倒排索引:对于频繁更新的文档,重建索引的开销较大。
    • MySQL:支持行级更新,但对于大量数据的复杂查询,性能可能下降。

倒排索引的搜索流程如下(以搜索"华为手机"为例),如图:

流程描述:

1.用户输入条件"华为手机"进行搜索。

2.对用户输入条件分词,得到词条:华为手机

3.拿着词条在倒排索引中查找(由于词条有索引,查询效率很高),即可得到包含词条的文档id:1、2、3

4.拿着文档id到正向索引中查找具体文档即可(由于id也有索引,查询效率也很高)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/882858.shtml

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

相关文章

文言文编程,没错,尤雨溪都点赞了

文言文编程,没错,尤雨溪都点赞了 在现代编程语言百花齐放的今天,居然有人选择用古典汉语来写代码?这就是文言编程语言 Wenyan-lang,一种让你在写代码时,仿佛重回古代,挥毫泼墨般潇洒。本文将带你…

Ubuntu22.04安装RTX3080

Ubuntu22.04安装RTX3080 1 安装基础环境 更新依赖包 sudo apt-get update sudo apt-get upgrade2 安装驱动 (1)查看适合的显卡驱动 # 查看可用的驱动 sudo ubuntu-drivers devices# 返回值,推荐版本:nvidia-driver-550 ERROR…

提升C#异步性能:如何正确使用ConfigureAwait(false)避免上下文捕获

前言 在C#开发中,异步编程非常普遍,async/await模式极大地简化了异步任务的编写。然而,随之而来的是一些隐蔽的性能和上下文切换问题。在某些情况下,默认的上下文捕获行为可能会导致性能损耗,特别是在UI应用中&#x…

步骤详解:弹性公网ipv6如何申请?

弹性公网ipv6如何申请?申请弹性公网IPv6的步骤包括:首先登录私有网络控制台,选择弹性网卡并进入实例详情页。在IPv6地址管理标签页中分配IPv6地址,然后通过操作栏下的按钮释放或调整IPv6地址的公网访问能力。最后,配置…

python之爬取豆瓣排行与可视化

找到目标网址: url "https://movie.douban.com/chart" 豆瓣电影排行榜 鼠标右键,检查 复制url,与user-agent: url "https://movie.douban.com/chart" headers {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Wi…

SQL进阶技巧:如何找出开会时间有重叠的会议室?| 时间区间重叠问题

目录 0 场景描述 1 数据准备 2 问题分析 方法1:利用 lateral view posexplode()函数将表展开成时间明细表 方法2:利用数学区间讨论思想求解 3 小结 0 场景描述 有7个会议室,每个会议室每天都有人开会,某一天的开会时间如下: 查询出开会时间有重叠的是哪几个会议室?…

算法专题七: 分治归并

目录 1. 排序数组2. 交易逆序对的总数3. 计算右侧小于当前元素的个数4. 翻转对 1. 排序数组 算法思路: 本道题使用归并的思路进行排序, 先讲数组分为左右两个区间, 然后合并两个有序数组. class Solution {vector<int> tmp; public:vector<int> sortArray(vector&…

sentinel原理源码分析系列(五)-构建调用链路

上节分析构建插槽链&#xff0c;Sentinel的资源调用好比一个个连续的检查口&#xff0c;能否通过&#xff0c;使用检查规则和统计指标&#xff0c;本章开始分析插槽&#xff0c;首先分析构建调用链路的两个插槽 构建调用链路 构建调用链路为指标统计搭建好结构&#xff0c;调…

文件误删并清空回收站:全面解析与高效恢复策略

一、文件误删并清空回收站的遭遇 在日常使用电脑或移动设备的过程中&#xff0c;我们难免会遇到一些令人懊恼的数据丢失问题&#xff0c;其中文件误删并清空回收站便是最为常见的一种。当你不小心删除了某个重要文件&#xff0c;并且随后又毫不留情地清空了回收站&#xff0c;…

双十一母婴必买清单 推荐超实用母婴用品

随着双十一购物狂欢节的临近&#xff0c;无数准父母和年轻家长开始摩拳擦掌&#xff0c;准备为家中的小宝贝抢购一系列高品质、实用的母婴用品。在这个年度最大的电商促销活动中&#xff0c;选择对的产品不仅能够节省开支&#xff0c;更能确保宝宝的健康成长与舒适生活。以下是…

【C++ STL 模板类】pair 键值对

文章目录 【 1. pair 对象的创建 】【 2. pair 对象的赋值 】【 3. pair 对象的比较 】【 4. pair对象成员的互换】 C STL 标准库提供了 pair 类模板&#xff0c;专门用来将 2 个普通元素 first 和 second&#xff08;可以是 C 基本数据类型、结构体、类自定的类型&#xff09;…

中安未来 OCR:开启高效身份证件识别新时代

在数字化快速发展的今天&#xff0c;高效准确地处理各类信息变得至关重要。中安未来 OCR&#xff08;Optical Character Recognition&#xff0c;光学字符识别&#xff09;技术以其卓越的性能和广泛的应用场景&#xff0c;成为了众多企业和机构的得力助手。其中&#xff0c;身份…

480p 720p 1080p 2k 4k 8k 12k分辨率视频分别占用多大带宽?

技术背景 好多开发者&#xff0c;在设置视频编码参数的时候&#xff0c;对不同分辨率的带宽设置&#xff0c;缺乏相关的经验&#xff0c;实际上&#xff0c;视频分辨率与所需带宽之间的关系受到多个因素的影响&#xff0c;包括视频编码方式、帧率、视频内容的动态程度等。下面…

SpringCloud无介绍快使用,sentinel服务熔断功能与持久化(二十四)

TOC 问题背景 从零开始学springcloud微服务项目 注意事项&#xff1a; 约定 > 配置 > 编码IDEA版本2021.1这个项目&#xff0c;我分了很多篇章&#xff0c;每篇文章一个操作步骤&#xff0c;目的是显得更简单明了controller调service&#xff0c;service调dao默认安装ngi…

5G工业路由器智能电网部署实录:一天内解决供电、网络

凌晨4:13,我被手机震动惊醒。变电站值班人员发来紧急消息:昨晚部署的SR800突然离线。我立即查看了STAR Device Manager平台,确认是设备A37号在3:47分失去连接。(key-iot.com/iotlist/sr800-3.html) 6:30到达变电站。检查SR800状态,发现是供电问题导致设备重启。这个老旧变电站…

Docker 安装使用

1. 下载 下载地址&#xff1a;Index of linux/static/stable/x86_64/ 下载好后&#xff0c;将文件docker-18.06.3-ce.tgz用WinSCP等工具&#xff0c;上传到不能外网的linux系统服务器 2. 安装 解压后的文件夹docker中文件如下所示&#xff1a; 将docker中的全部文件&#xff…

Gstreamer的webrtcbin插件

1、输入参数 static GOptionEntry entries[] {{"peer-id", 0, 0, G_OPTION_ARG_STRING, &peer_id, "String ID of the peer to connect to", "ID"},{"server", 0, 0, G_OPTION_ARG_STRING, &server_url, "Signalling se…

Android15音频进阶之组音量调试(九十)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【原创干货持续更新中……】🚀 优质视频课程:AAOS车载系统+…

输出时间序列中的时区是什么Series.dt.tz_convert(tz)

【小白从小学Python、C、Java】 【考研初试复试毕业设计】 【Python基础AI数据分析】 输出时间序列中的时区是什么 Series.dt.tz_convert(tz) [太阳]选择题 关于以下代码的输出结果的说法中正确的是? import pandas as pd t pd.date_range(start2014-08-01 09:00, freq…

【Java】常用方法合集

以 DemoVo 为实体 import lombok.Data; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;Data ExcelIgnoreUnannotated public class ExportPromoteUnitResult {private String id;ExcelProperty(value &qu…