千家信息网

elk入门概念详解

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,开始第一步我们现在开始进行一个简单教程,它涵盖了一些基本的概念介绍,比如索引(indexing)、搜索(search)以及聚合(aggregations)。通过这个教程,我们可以让你对Elastics
千家信息网最后更新 2026年11月01日elk入门概念详解

开始第一步


我们现在开始进行一个简单教程,它涵盖了一些基本的概念介绍,比如索引(indexing)、搜索(search)以及聚合(aggregations)。通过这个教程,我们可以让你对Elasticsearch能做的事以及其易用程度有一个大致的感觉。

我们接下来将陆续介绍一些术语和基本的概念,但就算你没有马上完全理解也没有关系。我们将在本书的各个章节中更加深入的探讨这些内容。

所以,坐下来,开始以旋风般的速度来感受Elasticsearch的能力吧!

让我们建立一个员工目录


假设我们刚好在Megacorp工作,这时人力资源部门出于某种目的需要让我们创建一个员工目录,这个目录用于促进人文关怀和用于实时协同工作,所以它有以下不同的需求:

数据能够包含多个值的标签、数字和纯文本。

检索任何员工的所有信息。

支持结构化搜索,例如查找30岁以上的员工。

支持简单的全文搜索和更复杂的短语(phrase)搜索

高亮搜索结果中的关键字

能够利用图表管理分析这些数据

索引员工文档


我们首先要做的是存储员工数据,每个文档代表一个员工。在Elasticsearch中存储数据的行为就叫做索引(indexing),不过在索引之前,我们需要明确数据应该存储在哪里。

在Elasticsearch中,文档归属于一种类型(type),而这些类型存在于索引(index)中,我们可以画一些简单的对比图来类比传统关系型数据库:

Relational DB -> Databases -> Tables -> Rows -> Columns

Elasticsearch -> Indices -> Types -> Documents -> Fields

Elasticsearch集群可以包含多个索引(indices)(数据库),每一个索引可以包含多个类型(types)(表),每一个类型包含多个文档(documents)(行),然后每个文档包含多个字段(Fields)(列)。

「索引」含义的区分


你可能已经注意到索引(index)这个词在Elasticsearch中有着不同的含义,所以有必要在此做一下区分:

索引(名词) 如上文所述,一个索引(index)就像是传统关系数据库中的数据库,它是相关文档存储的地方,index的复数是indices 或indexes。


索引(动词) 「索引一个文档」表示把一个文档存储到索引(名词)里,以便它可以被检索或者查询。这很像SQL中的INSERT关键字,差别是,如果文档已经存在,新的文档将覆盖旧的文档。


倒排索引 传统数据库为特定列增加一个索引,例如B-Tree索引来加速检索。Elasticsearch和Lucene使用一种叫做倒排索引(inverted index)的数据结构来达到相同目的。

默认情况下,文档中的所有字段都会被索引(拥有一个倒排索引),只有这样他们才是可被搜索的。

我们将会在倒排索引章节中更详细的讨论。


所以为了创建员工目录,我们将进行如下操作:

为每个员工的文档(document)建立索引,每个文档包含了相应员工的所有信息。

每个文档的类型为employee。

employee类型归属于索引megacorp。

megacorp索引存储在Elasticsearch集群中。

实际上这些都是很容易的(尽管看起来有许多步骤)。我们能通过一个命令执行完成的操作:

PUT /megacorp/employee/1

{

"first_name" : "John",

"last_name" : "Smith",

"age" : 25,

"about" : "I love to go rock climbing",

"interests": [ "sports", "music" ]

}

我们看到path:/megacorp/employee/1包含三部分信息:

名字 说明

megacorp 索引名

employee 类型名

1 这个员工的ID

请求实体(JSON文档),包含了这个员工的所有信息。他的名字叫"John Smith",25岁,喜欢攀岩。

很简单吧!它不需要你做额外的管理操作,比如创建索引或者定义每个字段的数据类型。我们能够直接索引文档,Elasticsearch已经内置所有的缺省设置,所有管理操作都是透明的。

接下来,让我们在目录中加入更多员工信息:

PUT /megacorp/employee/2

{

"first_name" : "Jane",

"last_name" : "Smith",

"age" : 32,

"about" : "I like to collect rock albums",

"interests": [ "music" ]

}


PUT /megacorp/employee/3

{

"first_name" : "Douglas",

"last_name" : "Fir",

"age" : 35,

"about": "I like to build cabinets",

"interests": [ "forestry" ]

}


结果:


[root@master elasticsearch]#

curl -i -XPUT 127.0.0.1:9200/megacorp/employee/1 -d '                     {    "first_name" : "John",    "last_name" :  "Smith",    "age" :        25,    "about" :      "I love to go rock climbing",    "interests": [ "sports", "music" ]}'


结果: 集群数据目录多一个了index megacorp名名称的(indices目录是 index名称的复数)

[root@master elasticsearch]#

ls -l /tmp/elasticsearch/data/elasticsearch-cluster/nodes/0/indices/megacorp/
total 24drwxr-xr-x 5 elasticsearch elasticsearch 4096 May 15 19:32 0drwxr-xr-x 5 elasticsearch elasticsearch 4096 May 15 19:31 1drwxr-xr-x 5 elasticsearch elasticsearch 4096 May 15 19:32 2drwxr-xr-x 5 elasticsearch elasticsearch 4096 May 15 19:31 3drwxr-xr-x 5 elasticsearch elasticsearch 4096 May 15 19:33 4drwxr-xr-x 2 elasticsearch elasticsearch 4096 May 15 19:33 _state


索引 文档 员工 数据 类型 目录 存储 搜索 信息 多个 数据库 传统 字段 结果 集群 检索 管理 概念 不同 接下来 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 手冲咖啡和咖啡机区别 互联网科技公司排名 互联网科技公司经营范围 互联网科技工作委员会副主任毛军 重庆互联网络科技 金融科技创新监管互联网金融 易互联网科技有限公司 中国互联网科技发展 互联网 视角下的科技创新 中国最先进互联网科技公司 天速互联网络科技有限公司 苏州五指互联网络科技有限 注册互联网科技公司经营范围大全 坤平互联网科技 中国科技创新与世界互联网大会 明优互联网科技有限公司 皮皮虾互联网科技有限公司 2021世界互联网领先科技成果发布 互联网科技新闻 互联网高科技绘画 中关村互联网 科技集团 苏州找大状互联网科技有限公司 互联网科技论文 汇久创客互联网科技 融势互联网科技 互联网金融中的现代科技 移动互联网年度科技创新 威龙国际互联网科技公司 云鲸互联网络科技有限公司 山东亿川互联网科技有限责任公司
0