乐趣区

关于elasticsearch:es笔记一之es安装与介绍

本文首发于公众号:Hunter 后端

原文链接:es 笔记一之 es 装置与介绍

首先介绍一下 es,全名为 Elasticsearch,它定义上不是一种数据库,是一种搜索引擎。

咱们能够把海量数据都放到 es 里而后提供搜寻操作,然而 MySQL 也同样能够提供搜寻,为什么要用 es 呢?

一个是因为它搜寻快,应用倒排索引的形式将数据分词之后存储数据,查问的时候间接依据搜寻关键词找到相干数据。

另一个是因为它能够提供一些 MySQL 做不到或者比拟耗时的含糊搜寻,这个咱们后续再介绍。

1、es 和 kibana 的装置

es 和 kibana 的装置这里能够间接看我之前的一篇博客文章,讲的很具体,或者去官网找相应的装置步骤。

es 和 kibana 装置

这里咱们应用的是 7.6.0 版本。

kibana 是一个界面工具,能够用于在浏览器界面间接操作 es。

2、es 层级和构造介绍

首先,咱们进入 kibana 界面,创立一条数据,而后依据这条数据来介绍 es 中构造的层级关系。

进入 kibana 的输出界面,输出:

PUT /customer/_doc/1
{"name": "John Doe"}

点击 PUT 命令同行左边的三角形,或者按住 ctrl + enter 确认,咱们就实现了一次数据的创立。

而后输出上面的命令查看这条数据的详情:

GET /customer/_doc/1

通过数据的存储和查看,咱们能够差不多理解 es 中数据的操作形式是 restful 格调的,能够通过 GET、PUT、POST、DELETE 的形式来实现数据的增删改查。

而后看一下咱们通过 GET 形式取得的数据状况,如下:

{
  "_index" : "customer",
  "_type" : "_doc",
  "_id" : "1",
  "_version" : 1,
  "_seq_no" : 0,
  "_primary_term" : 1,
  "found" : true,
  "_source" : {"name" : "John Doe"}
}

在这个数据结构中,有一些货色是能够和 MySQL 等数据库的构造对应起来的,比方 index 对应 MySQL 中的 database,type 对应 MySQL 中的 table,而 source 中的数据则对应于 MySQL 中一条条的数据。

然而 es 中 source 中的这些字段,比方 name,能够不事后定义,也能够事后定义,这一点不同于 MySQL,es 甚至能够间接写入值,es 会主动为其找到对应的字段属性从而定义。

比方咱们后面 PUT 的这条数据,查看 customer 这个数据库 index 的构造,能够看到 es 依据值为其主动创立了属性为 keyword。(es 中字段的各个属性咱们前面再介绍)

怎么查看 es 中 index 各个字段的属性呢,比方 customer,如下操作:

GET /customer/_mapping

index 和 type 也一样,如果创立数据的时候不存在,那么 es 也会主动为咱们创立相应的层级构造。

3、es 字段介绍

es 中的字段类型挺多的,个别计算机语言有的 es 中也有。

keyword

罕用于存储结构化内容,比方 email 地址,电话号码,名称等等

text

文本类型,罕用于保留大段文本,而后能够进行分词搜寻等操作

integer

整数

long

浮点型数据

date

日期格局,比方 ‘2022-01-01 12:00:00’

boolean

布尔型,true/false

数组

es 中没有独自的数组类型,然而当咱们确定将某个字段作为数组之后,能够间接将其作为数组应用,然而增加的元素必须是雷同的,这个咱们前面再介绍。

下面这些字段的含意和应用,这里只是做一个简略的介绍,前面尤其是和 Python 连贯应用的时候,咱们再对其应用办法做具体具体的介绍。

4、数据筹备

在接下来的笔记中,咱们将介绍 es 中各种搜寻操作,在此之前,咱们这里须要手动写入一批数据,具体操作如下。

首先咱们去获取一个数据文件,那下面有一批供咱们查问应用的数据,这个文件之前在官网文档提供的 github 地址,我去看了下,曾经不存在了,所以这里我截取一批数据还是放到名为 accounts.json 文档里,文档等会儿我放在文章开端,可供拷贝。

咱们将这个文件放在某个目录下,而后当前目录执行上面的语句导入到咱们在本地启动的 es 中:

curl -H "Content-Type: application/json" -XPOST "localhost:9200/bank/_bulk?pretty&refresh" --data-binary "@accounts.json"

而后进入 kibana,查看所有数据库,能够看到曾经多了一个名为 bank 的数据库:

GET /_cat/indices

这是 json 文件的地址:accounts.json

下一篇笔记咱们开始介绍 es 的搜寻。

原文链接:es 笔记一之 es 装置与介绍

退出移动版