重学Elasticsearch第1章 : Elasticsearch, Kibana概念、Elasticsearch相关术语

这篇具有很好参考价值的文章主要介绍了重学Elasticsearch第1章 : Elasticsearch, Kibana概念、Elasticsearch相关术语。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


Elastic Stack 是什么

  • Elasticsearch : 基于Json的分布式搜索和分析引擎
    • 搜索、聚合分析、大数据存储
    • 分布式、高性能、高可用、可伸缩、易维护
    • 支持文本搜索、结构化数据、非结构化数据、地理位置搜索等
  • Logstash : 动态数据收集管道,生态丰富
    重学Elasticsearch第1章 : Elasticsearch, Kibana概念、Elasticsearch相关术语
  • Kibana : 提供数据的可视化界面
    • 查询、查看并与存储在ES索引的数据进行交互操作
    • 执行高级的数据分析,并能以图表、表格和地图的形式查看数据。
  • Beats : 轻量级的数据采集器
    • 开源:Beats 是一个免费且开放的平台,集合了多种单一用途数据采集器。它们从成百上千或成千上万台机器和系统向 Logstash 或 Elasticsearch 发送数据。
    • 轻量级:Beats使用go语言开发,对服务器资源占用极低。Beats 可以采集符合 Elastic Common Schema (ECS) 要求的数据,可以将数据转发至 Logstash 进行转换和解析。
    • 即插即用:Filebeat 和 Metricbeat 中包含的一些模块能够简化从关键数据源(例如云平台、容器和系统,以及网络技术)采集、解析和可视化信息的过程。只需运行一行命令,即可开始探索。
    • 可扩展:由于Beats开源的特性,如果现有Beats不能满足开发需要,我们可以自行构建,并且完善Beats社区

ElasticSearch 概念

什么是RestFul

REST : 表现层状态转化(Representational State Transfer),如果一个架构符合REST原则,就称它为 RESTful 架构风格。

资源: 所谓"资源",就是网络上的一个实体,或者说是网络上的一个具体信息

表现层 :我们把"资源"具体呈现出来的形式,叫做它的"表现层"(Representation)。

状态转化(State Transfer):如果客户端想要操作服务器,必须通过某种手段,让服务器端发生"状态转 化"(State Transfer)。而这种转化是建立在表现层之上的,所以就是"表现层状态转化"。

REST原则就是指一个URL代表一个唯一资源,并且通过HTTP协议里面四个动词:GET、POST、PUT、DELETE对应四种服务器端的基本操作: GET用来获取资源,POST用来添加资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源。

什么是全文检索

全文检索是计算机程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置。当用户查询时根据建立的索引查找,类似于通过字典的检索字表查字的过程。

  • 索: 建立索引 文本---->切分 —> 词 文章出现过 出现多少次
  • 检索: 查询 关键词—> 索引中–> 符合条件文章 相关度排序

全文检索(Full-Text Retrieval(检索))以文本作为检索对象,找出含有指定词汇的文本。全面、准确和快速是衡量全文检索系统的关键指标。

关于全文检索,我们要知道:

  • 只处理文本、不处理语义
  • 搜索时英文不区分大小写
  • 结果列表有相关度排序

什么是Elasticsearch

ElasticSearch 简称 ES是基于Apache Lucene构建的开源搜索引擎,是当前流行的企业级搜索引擎。Lucene本身就可以被认为迄今为止性能最好的一款开源搜索引擎工具包,但是lucene的API相对复杂,需要深厚的搜索理论。很难集成到实际的应用中去。但是ES是采用java语言编写,提供了简单易用的RestFul API,开发者可以使用其简单的RestFul API,开发相关的搜索功能,从而避免lucene的复杂性

目前 Elasticsearch 有很多地方超越了 Lucene,它不仅可以实现全文搜索功能,还可以完成以下工作:

  • 分布式实时文档存储,并将每一个字段都编入索引,使其可以被搜索。
  • 分布式实时分析与搜索引擎。
  • 可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。
  • 可以轻松地通过客户端或者任何你喜欢的程序语言与 Elasticsearch 的 RESTful API 进行通信

ES的应用场景

ES主要以轻量级JSON作为数据存储格式,这点与MongoDB有点类似,但它在读写性能上优于 MongoDB 。同时也支持地理位置查询 ,还方便地理位置和文本混合查询 。 以及在统计、日志类数据存储和分析、可视化这方面是引领者。

  • 国外:

Wikipedia(维基百科)使用ES提供全文搜索并高亮关键字、StackOverflow(IT问答网站)结合全文搜索与地理位置查询、Github使用Elasticsearch检索1300亿行的代码。

  • 国内:

百度(在云分析、网盟、预测、文库、钱包、风控等业务上都应用了ES,单集群每天导入30TB+数据, 总共每天60TB+)、新浪 、阿里巴巴、腾讯等公司均有对ES的使用。

使用比较广泛的平台ELK(ElasticSearch, Logstash, Kibana)

安装Elasticsearch

Elasticsearch服务的访问端口为9200

传统安装

鉴于篇幅, 自行百度安装, 有具体详细针对Linux, windows的安装过程

docker安装

# 1.获取镜像
- docker pull elasticsearch:7.14.0

# 2.运行es
- docker run -d -p 9200:9200 -p 9300:9300  -e "discovery.type=single-node"  elasticsearch:7.14.0

# 3.访问ES
- http://10.15.0.5:9200/

ES目录结构

目录名称 说明
bin 脚本目录,启动ES节点和安装插件
config 配置文件目录,如elasticsearch配置、角色配置、jvm配置等
lib elasticsearch所依赖的java库
data 默认的数据存放目录,包含节点、分片、索引、文档的所有数据,生产环境要求必须修改
logs 默认的日志文件存储路径,生产环境务必修改
modules 包含所有的Elasticsearch模块,如Cluster、Discovery、Indices等
plugins 已经安装的插件的目录
jdk 7.0以后才有,自带的java环境

Kibana 概念

Kibana Navicat是一个针对Elasticsearch mysql开源分析及可视化平台,使用Kibana可以查询、查看并与存储在ES索引的数据进行交互操作,使用Kibana能执行高级的数据分析,并能以图表、表格和地图的形式查看数据。

安装Kibana

传统安装

# 1. 下载Kibana
- https://www.elastic.co/downloads/kibana

# 2. 安装下载的kibana
- $ tar -zxvf kibana-7.14.0-linux-x86_64.tar.gz 
  
# 3. 编辑kibana配置文件
- $ vim /Kibana 安装目录中 config 目录/kibana/kibana.yml

# 4. 修改如下配置
- server.host: "0.0.0.0"                		# 开启kibana远程访问
- elasticsearch.hosts: ["http://localhost:9200"]   #ES服务器地址

# 5. 启动kibana
- ./bin/kibana

# 6. 访问kibana的web界面  
- http://10.15.0.5:5601/   #kibana默认端口为5601   

docker安装

# 1.获取镜像
- docker pull kibana:7.14.0

# 2.运行kibana
- docker run -d  --name kibana -p 5601:5601 kibana:7.14.0

# 3.进入容器连接到ES,重启kibana容器,访问
- http://10.15.0.3:5601

# 4.基于数据卷加载配置文件方式运行
- a.从容器复制kibana配置文件出来
- b.修改配置文件为对应ES服务器地址
- c.通过数据卷加载配置文件方式启动
  `docker run -d -v /root/kibana.yml:/usr/share/kibana/config/kibana.yml  --name kibana -p 5601:5601 kibana:7.14.0
# kibana配置文件 连接到ES
server.host: "0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
monitoring.ui.container.elasticsearch.enabled: true

ElasticSearch相关术语

接近实时(NRT — Near Real Time )

Elasticsearch是一个接近实时的搜索平台。这意味着,从索引一个文档直到这个文档能够被搜索到有一个轻微的延迟(通常是1秒内)

索引(index)

索引是文档的容器,一类文档的集合,存储在分片Shard上

一个索引就是一个拥有几分相似特征的文档的集合一个索引由一个名字来标识(必须全部是小写字母的)并且当我们要对这个索引中的文档进行索引、搜索、更新和删除的时候,都要使用到这个名字。在一个集群中,如果你想,可以定义任意多的索引。

  • 索引类比关系数据库的db
  • 索引的Mapping定义文档字段类型,类比关系数据库的schema
  • 索引的Setting定义数据在分片上的分布

重学Elasticsearch第1章 : Elasticsearch, Kibana概念、Elasticsearch相关术语

映射(Mapping)

相当于数据库中的schema,用来约束字段的数据类型,每一种数据类型都有对应的使用场景。mapping 中定义了一个文档所包含的所有 field 信息,每个文档都有映射,但是在大多数使用场景中,我们并不需要显示的创建映射,因为ES中实现了动态映射。我们在索引中写入一个下面的JSON文档

{
    "name":"jack",
    "age":18,
    "birthDate": "1991-10-05"
}

在动态映射的作用下,name会映射成text类型,age会映射成long类型,birthDate会被映射为date类型,映射的索引信息如下。

{
  "mappings": {
    "_doc": {
      "properties": {
        "age": {
          "type": "long"
        },
        "birthDate": {
          "type": "date"
        },
        "name": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        }
      }
    }
  }
}

自动判断的规则如下:
重学Elasticsearch第1章 : Elasticsearch, Kibana概念、Elasticsearch相关术语

常见的ELasticSearch数据类型如下:

重学Elasticsearch第1章 : Elasticsearch, Kibana概念、Elasticsearch相关术语

注意事项关于字符串类型:

string类型: 在ElasticSearch 旧版本中使用较多,从ElasticSearch 5.x开始不再支持string,由text和keyword类型替代。

  • text类型的字段不用于排序,很少用于聚合,需要分词设置text类型
  • keyword类型适用于索引结构化的字段,keyword类型的字段只能通过精确值搜索到。不需要分词设置keyword类型

补充:对text类型的字段,会先使用分词器分词,生成倒排索引,用于之后的搜索。对keyword类型的字段,不会分词,搜索时只能精确查找

文档(document)

一个文档是一个可被索引的最小单元,类似于表中的一条记录。 比如,你可以拥有某一个员工的文档,也可以拥有某个商品的一个文档。文档以采用了轻量级的数据交换格式JSON(Javascript Object Notation)来表示。

  • 文档类比关系数据库一条记录
  • 每个文档有一个唯一的ID,类比关系数据库主键ID
  • json对象由filed构成,filed类比关系数据库column
{
  "_index": "user",
  "_type": "_doc",
  "_id": "qbuOs4AB1VH6WaY_OsFW",
  "_version": 1,
  "_score": 1,
  "_source": {
    "name": "张三",
    "address": "广东省深圳市",
    "remark": "他是一个程序员",
    "age": 28,
    "salary": 8800,
    "birthDate": "1991-10-05",
    "createTime": "2019-07-22T13:22:00.000Z"
  }
}

上图为 ES 一条文档数据,而一个文档不只有基础数据,它还包含了元数据(metadata)——关于文档的信息,也就是用下划线开头的字段,它是官方提供的字段:

  • _index :文档所属索引名称,即文档存储的地方。
  • _type :文档所属类型名(此处已默认为_doc)。
  • _id :文档的唯一标识。在写入的时候,可以指定该 Doc 的 ID 值,如果不指定,则系统自动生成一个唯一的 UUID 值。
  • _score :顾名思义,得分,也可称之为相关性,在查询是 ES 会 根据一些规则计算得分,并根据得分进行倒排。除此之外,ES 支持通过 Function score query 在查询时自定义 score 的计算规则。
  • _source :文档的原始 JSON 数据。

字段(field)

相当于是数据表的字段,字段在ES中可以理解为JSON数据的键,是文档中的基本单位,以键值对的形式存在。在下面的JSON数据中,键都是一个字段。

{
  "name": "张三",
  "address": "广东省深圳市",
  "remark": "他是一个程序员",
  "age": 28,
  "salary": 8800,
  "birthDate": "1991-10-05",
  "createTime": "2019-07-22T13:22:00.000Z"
}

ES和DB的关系

重学Elasticsearch第1章 : Elasticsearch, Kibana概念、Elasticsearch相关术语文章来源地址https://www.toymoban.com/news/detail-414739.html

到了这里,关于重学Elasticsearch第1章 : Elasticsearch, Kibana概念、Elasticsearch相关术语的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • ElasticSearch6.x版本概念介绍以及在Kibana上增删改查的操作

    教学讲解视频地址:视频地址 1.接近实时(NRT Near Real Time ) Elasticsearch是一个 接近实时 的搜索平台。这意味着, 从索引一个文档直到这个文档能够被搜索到有一个轻微的延迟(通常是1秒内) 2.索引(index) 一个索引就是一个拥有几分相似特征的文档的集合 。比如说,你可以有一个

    2023年04月24日
    浏览(43)
  • Kibana-elastic--Elastic Stack--ELK Stack

    Kibana 是什么? | Elastic 将数据转变为结果、响应和解决方案 使用 Kibana 针对大规模数据快速运行数据分析,以实现可观测性、安全和搜索。对来自任何来源的任何数据进行全面透彻的分析,从威胁情报到搜索分析,从日志到应用程序监测,不一而足。 虫瞻图(英语:worm\\\'s-eye

    2024年02月15日
    浏览(40)
  • Elastic 栈中的 Kibana安装

    Kibana 是一个开源分析和可视化平台,旨在与 Elasticsearch 协同工作。 你使用 Kibana 搜索,查看和与存储在 Elasticsearch 索引中的数据进行交互。 你可以轻松执行高级数据分析,并在各种图表,表格和地图中可视化你的数据。 官方链接:Kibana:如何在 Linux,MacOS 及 Windows 上安装

    2024年02月11日
    浏览(36)
  • 【elk查日志 elastic(kibana)】

    每次查日志,我都需要别人帮我,时间长了总觉得不好意思,所以这次下定决心好好的梳理一下,怎么查日志。我们查日志的网页是叫elastic,平时同事也都是叫elk。 我直接在网上搜elastic,是搜不到这个页面的具体使用流程的,我们需要搜索kinaba才可以。 为什么会出现这种情

    2024年02月22日
    浏览(45)
  • 使用docker安装elastic search[ES]和kibana

    使用docker安装elastic search和kibana,版本均为7.17.1 docker pull# 去dockerhub看具体版本,这里用7.17.1 临时安装生成文件# 参数说明 -d 后台启动 –name 起别名即:NAMES -p 9200:9200 将端口映射出来 elasticsearch的9200端口是供外部访问使用;9300端口是供内部访问使用集群间通讯 -e “discovery.

    2024年02月14日
    浏览(45)
  • 重学Elasticsearch第5章 : 过滤查询、聚合查询

    其实准确来说,ES中的查询操作分为2种: 查询(query) 和 过滤(filter) 。 查询即是之前提到的query查询,它(查询)默认会计算每个返回文档的得分,然后根据得分排序 。 过滤(filter)只会筛选出符合的文档,并不计算得分,且它可以缓存文档 。所以,单从性能考虑,过滤比查询更快

    2024年02月09日
    浏览(35)
  • Kibana-8.1.2:This Elastic installation has strict security requirements

    Windows 10 运行 Kibana-8.1.2 (一个针对 ElasticSearch 的开源分析及可视化平台,用来搜索、查看交互存储在 ElasticSearch 索引中的数据) 不同版本官方下载地址: Past Releases of Elastic Stack Software | Elastic Looking for a past release of Elasticsearch, Logstash, Kibana, es-hadoop, Shield, Marvel, or our language clie

    2024年02月02日
    浏览(31)
  • Windows 基本概念和术语

    本章将介绍 Windows 的基本概念,这些概念是方便接下来对 Windows 内部理解从而提前了解关于 Windows 基本概念和部分术语。 Windows 应用程序编程接口(application programming interface,API)是Windows操作系统家族的用户模式系统编程接口。64 位 Windows 发布前,32 位 Windows 的编程接口被称

    2024年02月12日
    浏览(42)
  • 服务端常用概念/术语汇总

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript对象的表示法,并使用文本表示。 JSON是一种流行的数据格式,因为它易于阅读和编写,并且可以表示各种类型的数据。 JSON数据由键值对组成,键是字符串,值可以是字符串、数字、布尔值、数组或对

    2024年03月27日
    浏览(95)
  • 数据结构 - 基本概念和术语

    基础概念之间的关系大致如下: 数据 数据对象 数据元素 数据项 类比数据库,这四个概念代表的含义如下所示: 数据:整个数据库的所有数据 数据对象:这个数据库的一张表,比如学籍表 数据元素:学籍表里的一条记录 数据项:学籍表里的一个字段值 概念:能输入计算机

    2024年02月11日
    浏览(45)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包