首页 > 其他分享 >es笔记一之es安装与介绍

es笔记一之es安装与介绍

时间:2023-05-18 23:11:06浏览次数:45  
标签:customer 介绍 一之 kibana 笔记 MySQL 数据 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 的搜索。

如果想获取更多后端相关文章,可扫码关注阅读:
image

标签:customer,介绍,一之,kibana,笔记,MySQL,数据,es
From: https://www.cnblogs.com/hunterxiong/p/17413578.html

相关文章

  • 刷题笔记:Luogu P3743
    题目传送门Solution最多能将这些设备一起使用多久,显然答案满足单调性(如果\(x<y\)而不能使用\(x\)时间则一定不能使用\(y\)时间)通俗一点,就是前边的时间不满足则后边一定不满足,也就是局部答案舍弃性,考虑二分时间至于check怎么写呢?和奶牛晒衣服有异曲同工之妙,若设二分出来的时间......
  • 《构建之法》读书笔记
    《构建之法》是法国哲学家、思想家德里达的代表作之一,被誉为是后现代主义的标志性著作。该书的主要论点是,所有的事物都是通过差异和矛盾的构建而成的,这一思想对于人类的思维、语言、文化等方面都具有深远的影响。以下是我对这本书的读书笔记,希望能够对读者有所启示。一、关于质疑......
  • [ABC268C] Chinese Restaurant
    [ABC268C]ChineseRestaurant声明:以下的所有操作都会再做一次\(\%n+n)\%n\),比如\(i-1\)会变成\(((i-1)\%n+n)\%n\)题意有\(n\)个人和\(n\)个盘子,每个人如果能拿到\(i-1\)或\(i\)或\(i+1\)号盘子那么他会很开心,现在每个人的站位是\(p_i\),他们的站位位......
  • 08_TypeScript 循环
    08_TypeScript循环有的时候,我们可能需要多次执行同一块代码。一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。编程语言提供了更为复杂执行路径的多种控制结构。for循环TypeScriptfor循环用于多次执行一个语句序列,简化管理循环变量的代码......
  • 文心大模型提示词笔记——应用场景案例
    发现:绝大多数应用场景的Prompt,质量都与使用者对“好结果”的了解成正比。1产品海报2写科普文 3写代码指定Markdown、js总结一下这几个例子·拿到应用场景后,先试着判断场景的任务特点,结合任务共性先优化一波。再结合场景主体、应用场合的特点,对生成内容的需求做一些补充说明。......
  • LLMs Fine-tuning 学习笔记(一):trl+peft
    目录1基本信息2实现步骤3代码分析1基本信息From:Fine-tuning20BLLMswithRLHFona24GBconsumerGPU(huggingface.co)Codes:trl/examples/sentiment/scripts/gpt-neox-20b_peftatmain·lvwerra/trl·GitHub相关工具:peft:用于微调大模型的python库官方文档:htt......
  • Vue Ant Design Pro 中定制主题
    VueAntDesignPro中定制主题需求定制主题去除“正在切换主题”过渡效果 需求项目要求使用草绿色的主题色并且去除如下的loading效果定制主题这里可以参照AntDesignProofVue官方文档哦定制方式是使用 less 的modifyVars的方式进行覆盖变量官方文档......
  • muduo库笔记汇总
    目录简介源码解析基础类日志库网络库简介muduo库是陈硕开发的Linux多线程事件库,适用于Linux服务器编程。Github地址:https://github.com/chenshuo/muduo文档介绍:https://book.douban.com/subject/20471211/源码解析基础类muduo笔记标记类copyable,noncopyablemuduo笔记......
  • Python爬虫学习之Requests库
    Requests请求库Requests是⽤Python语⾔编写,基于urllib,采⽤Apache2Licensed开源协议的HTTP库。它⽐urllib更加⽅便,可以节约我们⼤量的⼯作,完全满⾜HTTP测试需求。⼀句话——Python实现的简单易⽤的HTTP库1.了解requests库requests库的介绍requests是一个优雅而简单的Py......
  • 人件集 人性化的软件开发阅读笔记02
    《人件集人性化的软件开发》第二部分男牛仔与女牛仔第五章:男牛仔和女牛仔的婚姻作者将男牛仔和女牛仔比作婚姻中的男女双方,提出男牛仔和女牛仔之间的沟通和协作非常关键,就像婚姻中的双方需要相互理解和沟通一样。在软件开发中,男牛仔和女牛仔的差异会导致很多沟通和协作的问题,......