【ElasticSearch框架学习】专栏总集篇

youzgLogo

基本知识点:

图标:

logo


定义:

简称为es
es是一个开源高扩展分布式全文检索引擎,它可以近乎实时的存储检索数据
本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据
es也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,
但是,它的目的是通过简单的 RESTful APl 来隐藏 Lucene的复杂性,从而让全文搜索变得简单
据国际权威的数据库产品评测机构DBEngines的统计,在2016年1月,Elasticsearch已超过Solr等,成为排名第一的搜索引擎类应用


那么,什么又是 Lucene 呢?

扩展 —— Lucene 简介:

Lucene是apache软件基金会4 jakarta项目组的一个子项目,
是一个 开源全文检索引擎工具包
但它不是一个 完整的全文检索引擎,而是一个 全文检索引擎的架构
提供了完整的 查询引擎索引引擎部分文本分析引擎(英文与德文两种西方语言)
Lucene的目的是为软件开发人员提供一个简单易用的 工具包
以方便的在 目标系统 中实现 全文检索 的功能,或者是以此为基础建立起 完整的全文检索引擎


有关ES,还流传着一段诙谐的故事:

传言:

多年前,一个叫做Shay Banon的刚结婚不久的失业开发者,
由于妻子要去伦敦学习厨师,他便跟着也去了。
在他找工作的过程中,为了给妻子构建一个食谱的搜索引擎,他开始构建一个早期版本的Lucene.


直接基于Lucene工作会比较困难,所以Shay开始抽象Lucene代码以便va程序员可以在应用中添加搜索功能。
他发布了他的第一个开源项目,叫做"Compass"。
后来Shay找到一份工作,这份工作处在高性能和内存数据网格的分布式环境中,
因此高性能的、实时的、分布式的搜索引擎也是理所当然需要的。
然后他决定重写Compass库使其成为一个独立的服务叫做Elasticsearch。
第一个公开版本出现在2010年2月,在那之后Elasticsearch已经成为Github上最受欢迎的项目之一,代码贡献者超过300人。
一家主营Elasticsearch的公司就此成立,他们一边提供商业支持一边开发新功能,不过Elasticsearch将永远开源且对所有人可用。


但是,Shay的妻子依旧等待着她的食谱搜索…


但是,在如今的工作岗位要求中,我们经常能看到一个 和ElasticSearch齐名搜索引擎 —— Solr

ES 和 Solr:

请观看本人博文 —— 《【ElasticSearch框架学习】ES与Solr 浅析》

那么,基本的介绍 以及 与Solr的区别和联系 就讲解完了


在当代,只要谈及 ES,就会有个名词 被顺带着 讲解到 —— ELK

ELK 概述:

概念:

ELKElasticsearch、Logstash、Kibana 三大开源架构 的 首字母大写简称
市面上也被成为Elastic Stack,其中Elasticsearch是一个基于Lucene、分布式、通过Restful方式进行交互的近实时搜索平台框架,
像类似百度、谷歌这种大数据全文搜索引擎的场景都可以使用Elasticsearch作为底层支持框架,
可见Elasticsearch提供的搜索能力确实强大,
市面上很多时候我们简称Elasticsearch为es
Logstash 是 ELK 的 中央数据流引擎,用于从不同目标(文件/数据存储/MQ)收集的不同格式数据,
经过过滤后支持输出到不同目的地(文件/MQ/redis/elasticsearch等),
Kibana 可以将elasticsearch的数据通过友好的页面展示出来,提供实时分析的功能
市面上很多开发只要提到ELK能够一致说出它是一个 日志分析架构技术栈 总称,
但实际上,ELK不仅仅适用于 日志分析,它还可以支持其它任何数据分析和收集的场景,日志分析和收集只是更具有代表性并非唯一性


下面,本人通过一张图,来展示下 ELK的分工流程

分工流程:

安装


那么,为了进行后面的讲解内容,
本人先来讲解下 ELK 中的 ElasticSearch安装

ElasticSearch 安装:

请观看本人博文 —— 《【ElasticSearch框架学习】ElasticSearch安装 详解》


Kibanna 安装:

请观看本人博文 —— 《【ElasticSearch框架学习】Kibana安装 详解》


IK分词器:

请观看本人博文 —— 《【ElasticSearch框架学习】IK分词器 详解》


在上文的学习中,同学们应该大致了解了 ES服务的安装与启动 以及 ES的定义和各种相关知识点

那么,下面本人就来讲解下 ES的核心概念

核心概念:

请观看本人博文 —— 《【ElasticSearch框架学习】核心概念 详解》


为了下文中 ES的基本语法 的讲解,本人来介绍下 当前版本 ES中的 字段类型

字段类型:

常见数据类型:

类型 描述
binary 二进制值编码为Base64字符串
boolean true和false取值
Keywords 关键字家庭
其中包括keyword,constant_keyword,和wildcard
Numbers 数值类型
例如:long和double,用于表示 数量
Datas 日期类型,包括datedate_nanos
alias 为现有字段定义别名

对象关系类型:

类型 描述
object JSON对象
flattened 整个JSON对象作为单个字段值
nested 保留其子字段之间关系的JSON对象
join 为同一索引中的文档定义父/子关系

数组:

在Elasticsearch中,数组 不需要 专用的字段数据类型
默认情况下,任何字段 都可以包含 零个多个 值
但是,数组中的所有值 都必须 具有 相同的字段类型


其它类型:

更多数据类型,请访问下方链接:

https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-types.html


那么,了解完 字段类型 之后,本人就来讲解下 ES的基本语法 —— Restful命令
(注意:并不是说只能用 Restful命令Restful命令是当前最流行的一种ES语法)

Restful命令:

请观看本人博文 —— 《【ElasticSearch框架学习】Restful命令 详解》


在我们之前使用 数据库 进行 查询 的过程中,
几乎所有的查询都是 需要条件

因此,在我们使用ES进行查询的时候,业务也几乎都是需要 条件查询
那么,现在,本人就来讲解下如何使用 ES 进行 条件查询

条件查询:

请观看本人博文 —— 《【ElasticSearch框架学习】条件查询 详解》


SpringBoot 集成 ES:

请观看本人博文 —— 《【ElasticSearch框架学习】SpringBoot 集成 ElasticSearch》


官方文档:

若同学们还对于elasticsearch框架的基本知识点抱有疑问,请访问下面的官方文档链接:

elasticsearch的 官方文档
https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html

posted @ 2020-10-03 22:39  在下右转,有何贵干  阅读(194)  评论(0编辑  收藏  举报