ElasticSearch入门学习:基础概念与简介

news2024/12/23 12:44:47

文章目录

      • 一、ElasticSearch基础概念铺垫
        • 1.1 全文检索概念
        • 1.2 正排索引与倒排索引
      • 二、ElasticSearch简介
        • 2.1 ElasticSearch简介
        • 2.2 ElasticSearch生态圈-Elastic Stack
        • 2.3 ElasticSearch与Solr搜索引擎对比

声明:以下内容均来自b站 ElasticSearch入门到精通教程,摘录了其中大部分内容,仅为自己学习使用。

一、ElasticSearch基础概念铺垫

学习ElasticSearch之前我们需要先了解以下什么是全文检索,下面就让我们简单看下它们的概念吧。

1.1 全文检索概念

数据分类:
1、结构化数据: 固定格式,有限长度,例如mysql存储的数据,字段是固定的。
2、非结构化数据: 不定长,无固定格式,例如邮件、word文档、日志。
3、半结构化数据: 结构化与非结构化数据的结合,例如xml、html。

搜索分类:
1、结构化数据搜索: 使用关系型数据库,例如mysql等。
2、非结构化数据搜索: 分为顺序扫描与全文检索。
      (1)顺序扫描: 遍历所有的记录进行匹配,效率低,不符合我们的搜索期望。
      (2)全文检索:通过一个程序扫描文本中的每一个单词,针对单词建立索引,并保存该单词在文本中的位置及出现的次数。用户查询时,通过之前建立好的索引来查询,将索引中单词对应的文本位置,出现的次数返回给客户。其搜索原理主要分为以下几步:
①内容爬取,停顿词过滤:例如一些无用的像"的"、"了"类的语气词与连接词;
②内容分词,提取关键词;
③根据关键词建立倒排索引;
④用户输入关键词进行搜索。
例如:如下进行的搜索便是类似的一个例子,过滤无效的字分词提取出来关键字,建立倒排索引进行搜索,将搜索结果展现给用户。
在这里插入图片描述
 

1.2 正排索引与倒排索引

正排索引: 主键对应数据。 例如下表,我们有文章ID、文章标题、文章内容。可以通过文章ID找到对应的文章内容,也可以根据文章标题找到文章内容,包括我们的关系型数据库也是如此。
在这里插入图片描述

倒排索引: 数据对应主键。倒排索引常使用在搜索引擎当中,是搜索引擎为文档内容建立索引,实现内容快速检索必不可少的数据结构。倒排索引是由单词的集合词典和倒排列表的集合倒排文件组成的。 例如我们有一堆英文句子,将其分词、去重、排序之后便有了一张索引ID、word、出现位置的对应表,可以快速查找到相应关键词在那一句中出现过。
在这里插入图片描述
 

二、ElasticSearch简介

2.1 ElasticSearch简介

ElasticSearch(简称ES): 是一个分布式、可水平扩展的搜索和数据分析引擎,底层为Lucene,是用java开发并且是当前最流行的开源的企业级搜索引擎,能够达到实时搜索,并且设计了友好的Restful-API使得开发者无需关注底层机制,直接开箱即用;还拥有分片、副本机制解决了集群下性能与高可用问题。 稳定、可靠、快速、安装使用方便,客户端还支持java、C#、PHP、Python、Ruby等多种语言。
应用场景: 在国内,阿里巴巴、腾讯、滴滴、今日头条、饿了么、360安全、小米,vivo 等诸多知名公司都在使用Elasticsearch,主要用于日志搜集分析、用于APP综合搜索、订单系统搜索、企业级网站搜索等方面。除此之外还可以帮助探索海量数据结构化、非结构化数据,按需创建可视化报表、对健康数据设置报警阈值,甚至通过使用机器学习技术自动识别异常状况。
 

2.2 ElasticSearch生态圈-Elastic Stack

Elastic Stack: 我们先来了解一下什么是ELK,ELK即ElasticSearch(数据存储和搜索)、Logsstash(数据采集)、Kibana(提供给用户可视化及操作的界面)这三款软件在一起时的简称。在发展过程中又有了Beats(数据采集)的加入,便形成了Elastic Stack。
在这里插入图片描述
例如:我们想对Java的日志进行分析,可以先通过beats进行日志采集,采集到redis或者MQ中。完成后利用logstash进行数据过滤,以json格式存储到elasticsearch中,最终利用kibana提供给用户可视化界面查看。
在这里插入图片描述
 

2.3 ElasticSearch与Solr搜索引擎对比

ElasticSearch与Solr搜索引擎对比:
1、Solr 利用 Zookeeper 进行分布式管理;而Elasticsearch 自身带有分布式协调管理功能。
2、Solr 支持更多格式的数据,比如JSON、XML、CSV;而 Elasticsearch 仅支持json文件格式。
3、Solr 在传统的搜索应用中表现好于 Elasticsearch;但在处理实时搜索应用时效率明显低于 Elasticsearch。
4、Solr 是传统搜索应用的有力解决方案;但 Elasticsearch更适用于新兴的实时搜索应用。
 

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

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

相关文章

百度平地起“雷”,突然爆出的QPS数据意味着什么?

鲁迅先生1923年在北师大发表了著名的演讲《娜拉走后怎样》,其中的提问与思考方式振聋发聩,直到今天也依旧有效。面对很多产业现象、技术趋势,我们也不妨多问几个“之后怎样”。 比如说,自ChatGPT爆火之后,中国各个互联…

敏捷的动力之源是小而美(powered by GPT)

​ Stacey模型反映了组织运作模式。纵轴是政制,横轴是技术。敏捷偏右下↘,在技术领域与天地斗。反敏捷偏左上,在政制领域与人斗。敏捷是活化,反敏捷是消耗。敏捷的根本障碍是管理文化。理解了这个图就理解了敏捷。要么权力-恐惧-小…

倾斜摄影超大场景的三维模型OSGB格式转换3DTILES,为什么数据文件大小会变大?

倾斜摄影超大场景的三维模型OSGB格式转换3DTILES,为什么数据文件大小会变大? 在将倾斜摄影超大场景的三维模型从OSGB格式转换到3DTILES格式时,数据文件大小可能会比原始数据文件变大的原因主要有以下几个: 1、数据压缩方式不同&a…

Hive基础和使用详解

文章目录 1. hive的启动2. hive -help 命令3. hive -e 命令4. hive -f 命令5. 退出hive窗口6. 在hive窗口中执行dfs -ls /;7. Hive其他参考 1. hive的启动 前置条件: 1.保证hdfs和yarn已启动 2.保证hive的元数据库mysql已启动 启动方式一: hive命令 --切换到hive目…

基础自动化测试脚本开发——Loadrunner如何进行网站脚本开发

一、检查虚拟机ip是否与宿主机ip网段一样 若发现虚拟机IP地址网段与宿主机IP地址不一致时,应在手动改为宿主机IP网段的静态IP地址。 在dos系统下利用ping命令来判断网页的连通性,若连通性不通过,则重新修改分配该虚拟机静态IP地址&#xff08…

二分查找学习总结心得

二分查找一般运用在有序数组中的查找,一般分为开区间、闭区间和半开半闭区间三种写法 闭区间 闭区间是指包含左右两边元素的区间,例如:区间[a, b]包含元素 a b ,称为闭区间。 代码1 # 左闭右闭 区间写法 在数组 nums 中寻找 target def …

LVS负载均衡集群——NAT部署

一、企业群集应用概述 1、群集的含义 • Cluster、集群、群集 • 由多台主机构成,但对外只表现为一个整体,只提供一个访问入口(域名或IP地址),相当于一台大型计算机 2、问题及解决方法 问题: 互联网应用中,随着站…

说说Java日志那些事

日志是每个应用程序在开发的过程中必不可少的组件,通过日志输出可以获取项目的一些运行信息,监控项目的运行指标等,同时,通过学习Java日志框架还可以学习到桥接器与适配器模式等。 日志框架 log4j (日志实现&#xf…

上线控制台,降低使用门槛|Higress 1.0.0 RC 版本发布

作者:澄潭 前言 历时 5 个多月,Higress 推出了首个 RC (Release Candidate,即正式发布的候选)版本 1.0.0-rc,用户可以通过控制台,开箱即用地使用云原生网关。 选用 Higress 作为云原生网关的…

探究GPU同时做渲染与通用计算的并行性

在10年前,随着CUDA与OpenCL的纷纷出炉,GPGPU也着实热了一把。而现今,不少公司更是将GPGPU作为挖矿、搞机器学习的计算利器。于是乎,有许多言论声称GPU将很快取代CPU!那么现代化的GPGPU是否具有如此强大的威力甚至于能取…

sql注入知识---时间盲注

MySQL手注之时间盲注详解 时间盲注原理:注意:基于时间盲注sleep函数函数用法:例子:观察以下语句 基于时间盲注if函数函数用法: 基本步骤:基于时间的盲注案例(sqli-lab less-9)枚举当…

【Vue】学习笔记-组件化编程

学习笔记-组件化编程 模块与组件、模块化与组件化非单文件组件基本使用组件注意事项组件的嵌套VueComponent一个重要的内置关系 单文件组件 模块与组件、模块化与组件化 模块 a.理解:向外提供特定功能的js程序,一般就是一个js文件 b.为什么:j…

实验8---SpringMVC基础

实验八 SpringMVC基础 一、实验目的及任务 通过该实验,掌握SpringMVC框架搭建步骤,掌握SpringMVC控制器的编写方法以及与spring依赖注入结合方法。 二、实验环境及条件 主机操作系统为Win10,Tomcat,j2sdk1.6或以上版本。 三、实验实施…

使用Linux运维常识

一.基础操作 1.终端常用快捷键 快捷键描述ctrl键盘左键向左跳一个单词ctrl键盘右键向右跳一个单词Ctrl c停止当前正在运行的命令。Ctrl z将当前正在运行的命令放入后台并暂停它的进程。Ctrl d关闭当前终端会话。Ctrl l清屏,也可以用clear命令实现Tab自动补全当…

倾斜摄影超大场景的三维模型转换3DTILES格式有哪些好处?

倾斜摄影超大场景的三维模型转换3DTILES格式有哪些好处? 倾斜摄影超大场景的三维模型转换到3D Tiles格式有以下几个好处: 1、数据存储效率高:3D Tiles是一种高效的地理数据存储格式,能够将大规模的倾斜摄影三维模型数据分块存储…

Hive312的计算引擎由MapReduce(默认)改为Spark(亲测有效)

一、Hive引擎包括:默认MR、tez、spark 在低版本的hive中,只有两种计算引擎mr, tez 在高版本的hive中,有三种计算引擎mr, spark, tez 二、Hive on Spark和Spark on Hive的区别 Hive on Spark:Hive既存储元数据又负责SQL的解析&…

【Linux】生产者消费者模型——环形队列RingQueue(信号量)

文章目录 铺垫信号量信号量概念信号量PV操作信号量基本接口 环形队列的生产消费模型引入环形队列访问环形队列代码实现代码改造多生产者多消费者代码 总结 铺垫 之前写的代码是存在不足的地方的: 我们使用线程操作临界资源的时候要先去判断临界资源是否满足条件&am…

QoS部署

1.总部和分部之间视频出现花屏,语音图像不同步的现象是有哪些原因导致的? 如图所示总部和分部之间的流量有FTP数据流量、视频流量和语音流量。如果在总部和分部之间的这几类流量没有做QoS部分或者优先级的区分,那么这些流量基于默认的无差别的流量策略去竞争带宽,如果FTP数…

暴躁兔分享:火爆圈子的XEN,我们如何吃到一波红利的

这周沉闷的熊市突然冲出一个XEN项目。 在这个项目上我们经历了拿到消息,看不懂不做,获取新的信息,发现可以搞,冲的这么一个过程。虽然由于信息查和认知差没有吃到最早拿到信息那波的利润,但是通过分析也跟着喝了一点汤…

网页源代码检查时隐藏 WebSocket 的后端地址

背景 近期在自研如何通过 OpenAI 实现 与ChatGPT 官网一样的聊天对话效果。 用到了 html5websocketpython 三项技术 , 于是用一天时间自学了一下这方面技术。 当实现了功能之后,就得考虑安全问题: 在用 html5 实现与 websocket 通讯时,如何保…