侧边栏壁纸
博主头像
孔子说JAVA博主等级

成功只是一只沦落在鸡窝里的鹰,成功永远属于自信且有毅力的人!

  • 累计撰写 352 篇文章
  • 累计创建 135 个标签
  • 累计收到 10 条评论

目 录CONTENT

文章目录

ES教程-全面详实的ES(Elasticsearch)入门学习教程

孔子说JAVA
2022-10-28 / 0 评论 / 0 点赞 / 65 阅读 / 4,884 字 / 正在检测是否收录...
广告 广告

Elasticsearch 简称ES, 经常与Logstash 和Kibana 一起使用,江湖人称ELK。这里的 E 指的就是Elasticsearch, 具有分布式存储,搜索和分析的功能。L 指的就是Logstash,分布式日志收集框架。K 指的就是 Kibana,可视化分析框架。

03752518c3bf40e857d8742b4fbfe80c

1、概念介绍

教程:ES教程1-实时搜索引擎Elasticsearch相关概念介绍

Elasticsearch是一个基于Lucene的搜索服务器,是一个分布式可扩展的实时搜索和分析引擎。它提供了一个分布式多用户能力的全文检索引擎,基于RESTful web接口。Elasticsearch是用java语言开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

2、下载与安装

教程:ES教程2-ES的下载与安装

Elasticsearch 是一个分布式的免费开源搜索和分析引擎,适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据。Elasticsearch 在 Apache Lucene 的基础上开发而成,由 Elasticsearch N.V.(即现在的 Elastic)于 2010 年首次发布。Elastic有一条完整的产品线及解决方案:Elasticsearch、Kibana、Logstash等,这3个就是大家常说的ELK技术栈。本章主要介绍ES的下载与安装。

3、elasticsearch-head安装

教程:ES教程3-ES可视化工具elasticsearch-head的安装

ealsticsearch只是后端提供各种api,那么怎么直观的使用它呢?使用curl等客户端工具即可通过Restful API对Elasticsearch进行操作,但也有一些客户端工具提供对于ElasticSearch更加友好的可视化操作支持,比如 elasticsearch-head 就是用于监控 Elasticsearch 状态的客户端插件,包括数据可视化、执行增删改查操作等。elasticsearch-head 为开源项目,源码地址 https://github.com/mobz/elasticsearch-head。

4、elasticsearch-head使用 - 索引与映射

教程:ES教程4-ES可视化工具elasticsearch-head的使用 - 索引与映射

5、elasticsearch-head的使用 - 文档操作

教程:ES教程5-ES可视化工具elasticsearch-head的使用 - 文档操作

6、Query查询语法及示例

教程:ES教程6-Query查询语法及示例

es中的查询请求有两种方式,一种是简易版的查询,另外一种是使用JSON完整的请求体,叫做结构化查询(DSL)。由于DSL查询更为直观也更为简易,所以大都使用这种方式。DSL查询是POST一个json,由于post的请求是json格式的,所以存在很多灵活性,也有很多形式。本文主要讲解Query查询语法及示例。

7、聚合查询语法及示例

教程:ES教程7-聚合查询语法及示例

聚合查询可以将数据汇总为度量、统计或其他分析,为用户提供了进行分组和数理统计的能力,可以把聚合理解成SQL中的GROUP BY和分组函数。ES提供了强大的聚合分析功能,按照操作上细化,可以主要分为类: Bucket桶聚合、Metric指标聚合、Pipeline管道聚合。

8、Filter查询语法及示例

教程:ES教程8-Filter查询语法及示例

ES中的查询操作分为2种: 查询(query)和过滤(filter)。查询(query)默认会计算每个返回文档的得分,然后根据得分排序。而过滤(filter)只会筛选出符合的文档(即在查询过程中,只判断该文档是否满足条件,不会进行相似查询,只有 yes 或者 no),并不计算得分,且它可以缓存文档。所以,单从性能考虑,过滤比查询更快。

9、bool查询语法及示例

教程:ES教程9-bool查询语法及示例

es bool 查询是把任意多个简单查询组合在一起,使用 must、should、must_not、filter 选项来表示简单查询之间的逻辑,每个选项都可以出现 0 次到多次。它是为了满足比较复杂的查询需求,如需要在多个字段上查询多种多样的文本,并且根据一系列的标准来过滤。

10、Boost加权组合查询及示例

教程:ES教程10-Boost加权组合查询及示例

boost 参数被用来提升一个语句的相对权重(boost值大于 1 )或降低相对权重(boost值处于 0 到 1 之间),可以直接影响bm25的评分评分机制, 从而影响整体结果的相关度,这是一个非常好用,而且非常关键的一个参数。通过利用boost参数,可以对某个字段进行提权,在es 5.x 以后的版本中,有精确值字段(keyword)和全文搜索字段(text)。

11、Kibana安装及使用

教程:ES教程11-Kibana在Linux和Windows平台上安装及使用

Kibana 是一款开源的数据分析和可视化平台,是 Elastic Stack 成员之一,旨在与 Elasticsearch 协同工作。可以使用 Kibana 对 Elasticsearch 索引中的数据进行搜索、查看、删除操作,并与存储在Elasticsearch索引中的数据进行交互。可以执行高级数据分析,能够方便的利用图表、表格及地图对数据进行多元化的分析和呈现。

12、中文分词器IK的安装与使用

教程:ES教程12-ElasticSearch中文分词器IK的安装与使用

elasticsearch提供了几个内置的分词器:standard analyzer(标准分词器)、simple analyzer(简单分词器)、whitespace analyzer(空格分词器)、language analyzer(语言分词器),而如果我们不指定分词器类型的话,elasticsearch默认是使用标准分词器(是英文分词),该分词器在处理中文的时候会将中文分词为单个汉字。所以我们需要下载中文分词插件 elasticsearch-analysis-ik,来实现中文分词。

13、ElasticSearch搜索实战

教程:ES教程13-ElasticSearch搜索实战

Elasticsearch是一个分布式文档存储。Elasticsearch不会将信息存储为列数据的行,而是存储已序列化为JSON文档的复杂数据结构。当集群中有多个Elasticsearch节点时,存储的文档将分布在集群中,并且可以从任何节点立即访问。存储文档时,将在1秒钟内几乎实时地对其进行索引和完全搜索。本文对一些常用的ES查询方式做了归纳整理,以便备查。

14、集群信息之cat命令

教程:ES教程14-ElasticSearch集群信息之cat命令

在使用Elasticsearch过程中,经常在Kinana或者command line中使用cat命令来查看集群的信息,从中获取到es中的状态或者一些数据之间的关系。cat命令也是es中使用频率比较高的命令,组成形式如:GET /_cat/indices?format=json&pretty,?之前是命令,之后是参数,多个参数用&分隔。

15、倒排索引原理及示例

教程:ES教程15-ElasticSearch倒排索引原理及示例

倒排索引(Inverted Index)也叫反向索引,通俗来讲正向索引是通过key找value,反向索引则是通过value找key。传统的检索方式是通过文章,逐个遍历找到对应关键词的位置。倒排索引则是通过分词策略,形成了词和文章的映射关系表,也称倒排表,这种词典 + 映射表即为倒排索引。其中词典中存储词元,倒排表中存储该词元在哪些文中出现的位置。有了倒排索引,就能实现 O(1) 时间复杂度的效率检索文章了,极大的提高了检索效率。

16、SQL插件的安装及使用

教程:ES教程16-ElasticSearch-SQL插件的安装及使用

ElasticSearch-SQL(后文简称es-sql)是ElasticSearch的一个插件,是一个X-Pack组件,提供了es的类sql查询的相关接口,允许针对Elasticsearch实时执行类似SQL的查询。无论使用REST接口,命令行还是JDBC,任何客户端都可以使用SQL对Elasticsearch中的数据进行原生搜索和聚合数据。可以将Elasticsearch SQL看作是一种翻译器,它可以将SQL翻译成Query DSL。

17、SQL插件使用SQL查询示例详解

教程:ES教程17-ElasticSearch-SQL插件使用SQL查询示例详解

ElasticSearch-SQL(后文简称es-sql)是ElasticSearch的一个插件,提供了es的类sql查询的相关接口,使用者可以使用sql进行es数据的查询,但有一定的局限性,没有原生的Query DSL那么强大,对于嵌套属性和某些函数的支持并不怎么好,但是平时用来查询下数据基本够用了。

18、ES使用SQL查询的局限性

教程:ES教程18-ES使用SQL查询的局限性

ElasticSearch-SQL(后文简称es-sql)是ElasticSearch的一个插件,使用者可以使用sql进行es数据的查询,但有一定的局限性,没有原生的Query DSL那么强大,对于嵌套属性和某些函数的支持并不怎么好,但是平时用来查询下数据基本够用了。

19、xpack-sql和elasticsearch-sql对比

教程:ES教程19-sql插件xpack-sql和elasticsearch-sql对比

ES 6.3发布了内置sql插件 xpack-sql,在es内置sql插件之前,一直都是使用的NLPChina的elasicsearch-sql插件。本文重点对比xpack-sql和elasticsearch-sql的差异。从功能、函数、SQL兼容性、性能等方面进行对比。

20、ES集群搭建步骤

教程:ES教程20-ElasticSearch 集群搭建详细步骤

互联网应用中,随着站点对硬件性能、响应速度、服务稳定性、数据可靠性等要求越来越高,单台服务器开始无法满足负载均衡及高可用的需求,集群因此应运而生。集群(或称为群集)是由多台主机构成,但对外只表现为一个整体,只提供一个访问入口(域名或IP),相当于一台大型计算机。Elasticsearch做集群时Master节点至少有三台服务器或者三个Master实例加入相同集群。

21、Springboot整合ES

教程:ES教程21-Springboot整合ElasticSearch详解

在ES官方文档中可以看到,ES 为 Java REST Client 提供了两种方式的 Client:Java低级REST客户端(Java Low Level Client) 和 高级REST客户端(Java High Level REST Client)。低级别的客户端通过http与Elasticearch集群通信,版本兼容性好。高级REST客户端是基于低级客户端API的封装,版本兼容性差,需要的Java1.8以上的版本。Elasticsearch需要6.0以上。ElasticSearch7.15.x版本后,废弃了高级Rest客户端的功能,转为JavaAPI客户端。

22、ES密码设置

教程:ES教程22-ElasticSearch密码设置

ES 6.8之前添加用户密码验证需要安装x-pack插件,在6.8之后版本自带一个叫 xpack 的安全功能,启用即开启了xpack的功能、模式、并且传输启用ssl,可以直接设置。ES默认安装时,Elasticsearch会开启并监听9200端口,但是对于该端口并没有访问控制,恶意用户可以在未授权的情况下通过浏览器访问 ip:9200/_nodes/stats 等链接获得系统信息、以及存储的敏感数据等。所以生产环境我们都会设置密码。

0

评论区