ElasticSearch基础入门(一)

ElasticSearch基本使用

  • 一、索引
    • 1.创建索引
    • 2.查看索引
    • 3.删除索引
  • 二、映射
    • 1.创建映射
    • 2.新增数据
      • 2.1 随机生成id
      • 2.2 指定id
    • 3. 修改数据
    • 4.删除数据
  • 三、总结

一、索引

1.创建索引

创建索引的请求格式:

  • 请求方式:PUT

  • 请求路径:/索引库名

    e.g: 192.168.142.128:9200/youshop

  • 请求参数:json格式:

    {
           
        "settings": {
           
            "number_of_shards": 1,  # 分片数量
            "number_of_replicas": 0  # 副本数量
        }
    }
    

2.查看索引

GET /索引名

3.删除索引

DELETE /索引名

二、映射

什么是映射?

映射是定义文档的过程,文档包含哪些字段,字段是否store, 是否index, 是什么类型的数据, 是否分词等信息

操作映射前,我们需先了解ES中常见的数据类型。
ElasticSearch基础入门(一)_第1张图片
我们说几个关键的:

  • String类型,又分两种:

    • text:可分词,不可参与聚合
    • keyword:不可分词,数据会作为完整字段进行匹配,可以参与聚合
  • Numerical:数值类型,分两类

    • 基本数据类型:long、interger、short、byte、double、float、half_float
    • 浮点数的高精度类型:scaled_float
      • 需要指定一个精度因子,比如10或100。elasticsearch会把真实值乘以这个因子后存储,取出时再还原。
  • Date:日期类型

    elasticsearch可以对日期格式化为字符串存储,但是建议我们存储为毫秒值,存储为long,节省空间。

1.创建映射

PUT /索引库名/_mapping/类型名称

{
     
  "properties": {
     
    "字段名": {
     
      "type": "类型",
      "index": true"store": true"analyzer": "分词器"
    }
  }
}
  • 类型名称:就是前面将的type的概念,类似于数据库中的不同表(在ES7之后已删除)
    字段名:任意填写 ,可以指定许多属性,例如:
  • type:类型,可以是text、long、short、date、integer、object等
  • index:是否索引,默认为true。是否可用于检索
  • store:是否存储,默认为false
  • analyzer:分词器,这里的ik_max_word即使用ik分词器

2.新增数据

2.1 随机生成id

通过POST请求,可以向一个存在的索引库中添加数据。
在添加数据时,如果不指定id,则会使用随机生成的id

POST /索引库名/类型名
{
     
    "title": "小米手机",
    "images": "http://image.youshop.com",
    "price": 2699.00
}

2.2 指定id

如果想要自己新增的时候指定id,可以在请求路径后面拼接上id。如果id不存在,则新增,如果id存在,则修改数据

POST /索引库名/类型/id值
{
     
    "title": "iphone xs max",
    "price": 8848.00,
    "images": "www.iphone.com",
    "saleable": true # 我们在新建映射时,并未指定该字段。ES会根据输入的数据来判断类型,动态添加到数据映射关系中。
}

3. 修改数据

把刚才新增的请求方式改为PUT,就是修改了。不过修改必须指定id。

其实post和put请求都可以修改数据,但PUT必须指定id

---- 指定id 不指定id
PUT 有则修改,无则新增 报错
POST 有则修改,无则新增 新增,使用随机id

何为幂等性?
无论操作多少次,其结果都是与第一次的操作是一样的。

PUT和DELETE一样,都是幂等性的。是操作在具体的文件之上的。而POST是非幂等性的,操作在文件集合之上的。

4.删除数据

DELETE /索引库名/类型名/id值

三、总结

本文章介绍了ElasticSearch的基本使用,从如何创建一个索引,到新建映射,再到对索引库下的类型中的文档的增删改其实都是非常容易的,ES中最难的部分就是DSL查询语句了,将在下一篇文章中进行学习。

你可能感兴趣的