• 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 的搜索。

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

    image

  • 相关阅读:
    我为什么使用Linux做开发
    B087-人力资源项目-文件上传&课程分类
    Spring Boot(一):Spring Boot 自动配置 和 启动流程分析
    [附源码]计算机毕业设计社区疫情防控信息管理系统Springboot程序
    JAVA【DAO及其实现类】
    每天五分钟机器学习算法:拉格朗日乘数法和KKT条件
    MySQL数据库:开源且强大的关系型数据库管理系统
    小知识·Git常用命令
    预测商品销量kaggle-predict-future-sales
    uniapp 拉起微信客服功能
  • 原文地址:https://www.cnblogs.com/hunterxiong/p/17518686.html