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

es笔记一之es安装与介绍

时间:2023-05-13 22:02:38浏览次数:49  
标签: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 的搜索。

标签:customer,介绍,一之,kibana,笔记,MySQL,数据,es
From: https://blog.51cto.com/u_16061969/6273846

相关文章

  • 记录路由和源站路由实验(GNS3 + wireshark)
    实验目标1.认识IP记录路由的过程。2.抓包分析严格源站路由3.抓包分析宽松源站路由实验任务1.配置三台路由器,给每个路由器端口配置IP,在路由器R3上配置一个环回口3.3.3.3,使用扩展ping让R1ping3.3.3.3,抓包分析IP记录路由过程。2.配置5台路由器,让其中有环路,配置好OSPF路由协议。......
  • 数学笔记
    分数乘法  分数乘整数,用分子乘整数  的积作分子,分母不变。   分数除法倒数 分数  真分数  分子比分母小,真分数小于1  假分数  分子大于或等于分母,假分数大于或等于1    假分数能化整数先化整数,避免直接化简出问题        ......
  • C基础笔记(分支结构if-else)
    条件判断之ifelse语句//1.从上往下顺序执行//2.C语言程序将结构分为:顺序和分支//3.if(条件)//常量变量运算式比较式//{  条件成立时要做的事(一行或多行代码)//}正反两种情况#include<stdio.h>intmain(){inta;scanf_s("%d",&a);if(a%2==0){ printf("%d是偶数\n......
  • C基础笔记(运算符2)
    运算符(2)  //1.特殊运算符:() .  ->  []//2.算术运算符:+ - * % / ++ --//3.关系运算符:>  >= < <== == !=//4.位操作运算符:& ^ |  << >>//5.逻辑运算符:&&  || !//6.条件运算符:?://7.赋值运算符:= += -=  %= /=......
  • Asp.Net Core使用Exceptionless日志服务2-集成Exceptionless.NLog
    Asp.NetCore使用Exceptionless日志服务2-集成Exceptionless.NLog Exceptionless有自己一套完整的Api用于提交日志,我的项目已经写好了,使用Asp.NetCore标准接口ILogger记录日志,然后通过NLog输出到文件和控制台,我不想修改标准的日志接口,幸好有Exceptionless.NLog这样强大的组件,......
  • C基础笔记(运算符1)
    运算符(1)1.特殊运算符:()  .  ->  []2.算术运算符:+  -  *  %  /  ++  --3.关系运算符:>  >= <  <=  =  ==  !=4.位操作运算符:&  ^  |   <<  >>5.逻辑运算符:&&  ||  !6.条件运算符:  ?:7.赋......
  • docker 安装Es教程
    转载于:你必须会的Docker安装ElasticSearch教程创建网络dockernetworkcreateitmentu-net安装Es命令dockerrun-d\ --nameelasticsearch\-e"ES_JAVA_OPTS=-Xms512m-Xmx512m"\-e"discovery.type=single-node"\-ves-data:/usr/share/elas......
  • C基础笔记(常量与变量2)
    常量与变量(2)//要想使用变量必须先定义它//变量通过赋值保存东西//变量应该赋相同类型的值,如果赋值类型不一致,参考左端//变量赋值不要超过它能保存的值#include<stdio.h>  intmain()   {inti;//定义一个整型变量ii=12;//将变量赋值为12 pri......
  • C基础笔记(Hello world)
    第一个程序Helloworld#include<stdio.h>  //包含语句//intmain()   //主函数//{ //printf(“Helloworld!”); //输出函数//getchar();//等待一个字符 //return0;......
  • springboot 低于 2.6 版本设置 SameSite=None,springboot 1.x set SameSite=none in em
    speingboot使用自带的tomcat运行,设置SameSite。springboot过低的版本没有SameSite的属性设置,升级到1.5.22版本后,虽然Rfc6265CookieProcessor有 setSameSiteCookies方法,但是方法逻辑有BUG,当不是None时才可以设置成功:SameSiteCookiessameSiteCookiesValue=thi......