ElasticSearch入门学习:基础铺垫与简介

这篇具有很好参考价值的文章主要介绍了ElasticSearch入门学习:基础铺垫与简介。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


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

一、ElasticSearch基础铺垫

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

1.1 全文检索概念

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

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

1.2 正排索引与倒排索引

正排索引: 主键对应数据。 例如下表,我们有文章ID、文章标题、文章内容。可以通过文章ID找到对应的文章内容,也可以根据文章标题找到文章内容,包括我们的关系型数据库也是如此。
ElasticSearch入门学习:基础铺垫与简介

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

二、ElasticSearch简介

2.1 ElasticSearch简介

ElasticSearch(简称ES): 是一个分布式、可水平扩展的搜索和数据分析引擎,底层为Lucene,是用java开发并且是当前最流行的开源的企业级搜索引擎,能够达到实时搜索,完美封装了Lucene核心库并且设计了友好的Restful-API,使得开发者无需关注底层机制,直接开箱即用;还拥有分片、副本机制解决了集群下性能与高可用问题。 稳定、可靠、快速、安装使用方便,客户端还支持java、C#、PHP、Python、Ruby等多种语言。

应用场景: 在国内,阿里巴巴、腾讯、滴滴、今日头条、饿了么、360安全、小米,vivo 等诸多知名公司都在使用Elasticsearch,主要用于日志搜集分析、用于APP综合搜索、订单系统搜索、企业级网站搜索等方面。除此之外还可以帮助探索海量数据结构化、非结构化数据,按需创建可视化报表、对健康数据设置报警阈值,甚至通过使用机器学习技术自动识别异常状况。
 

2.2 Restful风格简介

Restful风格: Restful是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。它不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁、更有层次、更易于实现缓存等机制。。 RESTFUL适用于移动互联网厂商作为业务接口的场景,实现第三方OTT调用移动网络资源的功能,动作类型为新增、变更、删除所调用资源。

restful风格特点为:
1、每一个URI代表1种资源;
2、客户端使用GET、POST、PUT、DELETE4个表示操作方式的动词对服务端资源进行操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源;
3、通过操作资源的表现形式来操作资源;
4、资源的表现形式是XML或者HTML;
5、客户端与服务端之间的交互在请求之间是无状态的,从客户端到服务端的每个请求都必须包含理解请求所必需的信息。

Restful风格与传统http请求区别:
传统请求方式:http://ip:port/工程名/资源名?请求参数
Restful风格:http://ip:port/工程名/资源名/请求参数/请求参数
 

2.3 7.x与8.x版本特性

7.x新特性:
1、正式废除单个索引下多Type的支持;
2、7.1开始,Security功能免费使用;
3、ECK-Elasticsearch Operator on Kubernetes;
4、新功能:New Cluster coordination。
这里仅仅列举了一点点新特性,更多7.x特性可以查看:官方文档关于7.x特性的介绍

8.x新特性:
1、Rest API相比较7.x而言做了比较大的改动,比如彻底删除_type;
2、默认开启安全配置;
3、存储空间优化:对倒排文件使用新的编码集,对于keyword、match_only_test、text类型字段有效,有3.5%的空间优化提升,对于新建索引和segment自动生效;
4、优化geo_poiny、geo_shape类型的索引写入效率:15的提升;
5、技术预览版KNN API发布(K临近算法、跟推荐系统、自然语言排名相关)。
这里仅仅列举了一点点新特性,更多8.x特性可以查看:官方文档关于8.x特性的介绍
 

2.4 ElasticSearch生态圈-Elastic Stack

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

2.5 ElasticSearch与Solr搜索引擎对比

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

到了这里,关于ElasticSearch入门学习:基础铺垫与简介的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言 指针声明和定义 - C语言零基础入门教程

    目录 [一.指针简介] [1.内存] [2.内存地址] [3.指针声明] [二.指针类型] [三.声明并初始化一个指针] [1.声明指针并直接初始化 – 推荐] [2.先声明指针在初始化 – 不推荐] [四.查看指针地址和指针的值] [五.NULL 指针 – 空指针] [六.重点总结] [七.猜你喜欢] 零基础 C/C++ 学习路线推荐

    2024年03月22日
    浏览(39)
  • 基础知识铺垫

    目录 一、HTTP 1.http协议 2.http协议的工作原理 3.http的请求 请求行 请求头 请求体 4.http的响应 响应行 5.get和post请求方法 6.get和post的区别 回退 请求响应速度 二、常见的端口及服务 三、HTTP响应码及其含义(详细) HTTP状态列表 1XX 2XX  3XX 4XX 5XX  简而言之  http协议也叫超文本传输

    2024年02月07日
    浏览(32)
  • HTML基础铺垫

    😊各位小伙伴们,新文章新专栏持续更新中!!! 在前面的两篇文章中,我们介绍了Web前端开发概述,在这篇文章中,我们主要 了解HTML的基本组成结构,理解HTML头部head和主体body两大部分在网页设计中的作用。掌握head、body标记中可以包含哪些标记;理解HTML标记的作用和标

    2024年02月14日
    浏览(26)
  • Dubbo引入Zookeeper等注册中心简介以及DubboAdmin简要介绍,为后续详解Dubbo各种注册中心做铺垫!

    文章目录 一:Dubbo注册中心引言 1:什么是Dubbo的注册中心? 2:注册中心关系图解 3:引入注册中心服务执行流程 4:Dubbo注册中心好处 5:注册中心核心作用 二:注册中心实现方案 1:早期 2:当前现状 三:DubboAdmin介绍 1:DubboAdmin简介 2:DubboAdmin的主要功能         Dubbo注册

    2024年02月05日
    浏览(43)
  • 【Linux】进程基础铺垫(一)硬件基础:冯诺依曼体结构

    我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系 截至目前,我们所认识的计算机,都是有一个个的硬件组件组成 。 输入单元:包括键盘, 鼠标,扫描仪, 写板等 输出单元:显示器,打印机等 存储器 : 内存 【 掉电易失 】 中央处

    2024年02月19日
    浏览(35)
  • 第一节 区块链技术的学习铺垫

    区块链起源于比特币。2008年11月中本聪的发表《比特币:一种点对点的电子现金系统》,阐述了基于 P2P 网络技术、加密技术、时间戳技术、区块链技术等的电子现金系统的构架理念,标志着比特币的诞生。两个月后比特币程序编写完成并自组网开始运用,2009年1月3日第一个

    2024年01月16日
    浏览(40)
  • 深度学习笔记之Transformer(四)铺垫:LayerNormalization

    在介绍 Transformer text{Transformer} Transformer 模型架构之前,首先介绍 Transformer text{Transformer} Transformer 的核心架构之一: 层标准化 ( Layer Normalization ) (text{Layer Normalization}) ( Layer Normalization ) 。 问题描述 批标准化 ( Batch Normalization ) (text{Batch Normalization}) ( Batch Normalization ) 我们

    2024年02月13日
    浏览(44)
  • 机器学习笔记之优化算法(十)梯度下降法铺垫:总体介绍

    从本节开始,将介绍 梯度下降法 ( Gradient Descent,GD ) (text{Gradient Descent,GD}) ( Gradient Descent,GD ) 。 线搜索方法作为一种常见优化问题的 策略 ,该方法的特点是: 其迭代过程中,将 数值解 的方向和步长分开执行 。对应 数学符号 表达如下: 其中 P k mathcal P_k P k ​ 是一个向量

    2024年02月13日
    浏览(41)
  • Flask简介与基础入门

    Flask作为Web框架,它的作用主要是为了开发Web应用程序。那么我们首先来了解下Web应用程序。Web应用程序 (World Wide Web)诞生最初的目的,是为了利用互联网交流工作文档。 1、一切从客户端发起请求开始。 所有Flask程序都必须创建一个程序实例。 当客户端想要获取资源时,一般

    2024年02月14日
    浏览(30)
  • Python零基础入门(一)——Python简介与基础语法

    个人简介:机电专业在读研究生,CSDN内容合伙人,博主个人首页 Python入门专栏:《Python入门》欢迎阅读,一起进步!🌟🌟🌟 码字不易,如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!😊😊😊 Python是一门适合初学者入门的编程语言,本文将介

    2024年02月10日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包