elasticsearch看这一篇就够了---入门(1)Elasticsearch&Kibana概念详解,下载安装使用

1. 是什么?

在这里插入图片描述
(1)Elasticsearch是一个基于Apache Lucene™的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最 先进、性能最好的、功能最全的搜索引擎库
(2)Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的 RESTful API 来隐藏Lucene的复杂性,从而让全文搜索变得简单
总之一句话,它很牛,也很复杂,但是他对外隐藏了这些内部实现,用它还是很简单滴!

到这里就有小伙伴有疑问了,不就一个搜索呀?好像用sql语句查询也可呀,为什么要用这个东西呢?
听我娓娓道来

在这里插入图片描述

2. 建立一个员工目录

为了方便理解,需要带入一个场景中,以下都以这个场景为主,这样更好理解!
场景:假设我们刚好在阿里BaBa工作(人还是要有梦想的,当然梦里想想就可以了),这时人力资源部门出于某种目的需要让我们创建一个员工目录,这个目录 用于促进人文关 怀和用于实时协同工作,所以它有以下不同的需求:

  • 数据能够包含多个值的标签、数字和纯文本。
  • 检索任何员工的所有信息。
  • 支持结构化搜索,
  • 例如查找30岁以上的员工。
  • 支持简单的全文搜索和更复杂的短语(phrase)搜索 高亮搜索结果中的关键字
  • 能够利用图表管理分析这些数据

这些有些可以通过sql语句做到,但是很消耗时间(全文搜索),有些比较麻烦,比如高亮关键字,图表分析
然后我们来看看Elasticsearch是怎么做的呢?

我们首先要做的是存储员工数据,每个文档代表一个员工。在Elasticsearch中存储数据的行为就叫做索引(indexing),不过 在索引之前,我们需要明确数据应该存储在哪里。 在Elasticsearch中,文档归属于一种类型(type),而这些类型存在于索引(index)中,我们可以画一些简单的对比图来类比传统 关系型数据库:

Relational DB -> Databases -> Tables -> Rows -> Columns 
Elasticsearch -> Indices -> Types -> Documents -> Fields

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

记住只是类比,不能概念相等

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

  • 为每个员工的文档(document)建立索引,每个文档包含了相应员工的所有信息。
  • 每个文档的类型为 employee
  • employee 类型归属于索引 albb
  • albb索引存储在Elasticsearch集群中。

实际上这些都是很容易的(尽管看起来有许多步骤)。我们能通过一个命令执行完成的操作:
(没安装ElasticsearchElasticsearch下载安装使用教程,,以下代码是在Kibana中执行的,下载就可以使用Kibana下载安装使用教程

PUT /albb/employee/1 
{
  "first_name" : "John", 
  "last_name" : "Smith", 
  "age" : 25,
  "about" :  "I love to go rock climbing", 
  "interests": [ "sports", "music" ]
}

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

名字 说明
albb 索引名
employee 类型名
1 这个员工的Id

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

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

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

PUT /albb/employee/2
{
"first_name" : "Jane",
"last_name" : "Smith",
"age" : 32, 
"about" : "I like to collect rock albums", 
"interests": [ "music" ]
}

PUT /albb/employee/3
{
"first_name" : "Douglas",
"last_name" : "Fir", 
"age" : 35,
"about": "I like to build cabinets", 
"interests": [ "forestry" ]
}

好了,现在我们终于有了一些数据,可以以此开始学习搜索了,是不是很简单呢?

写作不易,你们的支持我继续创作的动力!喜欢的话给我点个赞,关注一波吧!

下一篇 讲述如何使用这些数据进行搜索得到结果

elasticsearch看这一篇就够了—入门(2)Elasticsearch检索文档,DSL语句查询,复杂查询,全文搜索
在这里插入图片描述在这里插入图片描述

发布了28 篇原创文章 · 获赞 12 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_42002367/article/details/103983289
今日推荐