• es学习笔记(二)


    RESTFUL

    RESTful是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。elasticsearch里的接口都是通过rest接口实现的,我们可以通过HTTP的GET,POST,PUT,DELETE,PATCH对数据进行CRUD。

    安全性:指方法的调用不会产生副作用,即不会修改资源的状态,但是多次调用返回的值可能不一样(被其他方法修改过)

    幂等性:指方法多次调用返回的效果一致,客户端可以重复调用并且期望同样的结果。比如修改某个值,一次调用多次调用效果一致,都是修改。

    GET:具有安全性和幂等性,用于获取资源

    POST:不具有安全性和幂等性,用于创建子资源,在方法修改资源时,URL指示的是该资源的父级资源,待修改资源的ID信息在请求体中携带。重复提交请求可能产生两个不同的资源

    PUT:不具有安全性,具有幂等性,用于创建和更新资源,在修改资源时URL直接指示待修改的资源。重复提交只会创建一个资源

    DELETE:不具有安全性,具有幂等性,用于删除资源

    PATCH:不具有安全性,具有幂等性,用于创建,更新资源,与PUT类似,区别在于PATCH代表部分更新,仅对非null进行更新

    创建索引及文档

    创建一个名为gaoxiaolin_test的索引,名为person的类型并插入文档,文档id设置为1。(在es4.0之后一个索引只能有一个type)类比MYSQL就是创建了一个名为gaoxiaolin_test的数据库,创建一个名为person的表,再在person表中插入一条数据,数据id为1

     如图可见创建成功,有两个分片,一个是主分片另一个是复制分片。这是自动创建索引,也可以禁止自动创建,深入学习时再看。通常使用以上方法写入文档之后,并不能马上进行搜索,需要es提供的refresh操作,它可以使更改可见以进行搜索操作,通常会有一个refresh timer来定时完成这操作(后面总结)。

    返回结果中的_version表示版本信息,当前第一次创建_id为1的文档,因此它显示为1,之后如果我们更改这个文档,他的版本每次都会自动加1。如下图

     可以看出,如果文档已经存在,每次post或put对时那么相应的版本号就会自动加1,之前的版本会被抛弃,如果我们不想要这样,而是在文档已存在时向我们提示信息,那么可以在请求时带上op_type=create。若文档已存在,将会出现错误提示信息。op_type可取值有两个index和create

    在上面创建文档过程中,我们为文档指定了一个id1,若我们指定,那么es会为我们自动创建一个新的文档,这样速度更快,以上的方法可以使用POST和PUT,但是通常我们在创建一个新的文档时使用POST,修改一个新的文档时使用PUT,在es为我们自动创建id的情况下,只能使用POST方法。如图所示,es为我们自动生成了id。

    查看文档

    文档查看可以显示全部信息

    可以只查看_source中的内容

    查看所有文档

    修改文档

    通常使用put并且指定文档id进行操作,但是使用这个方法,我们每次修改文档必须把文档的每一项都写出来,未写的部分将丢失

     

    检查文档是否存在

    Head gaoxiaolin_test/person/1

    删除文档

    DELETE gaoxiaolin_test/person/1

    删除index

    DELETE gaoxiaolin_test

    查询文档条数命令_count

    get gaoxiaolin_test/_count

  • 相关阅读:
    So easy Webservice 2.WebService介绍
    So easy Webservice 1.Socket建设web服务
    eclipse 实用快捷键
    Memory Layout of C Programs
    C程序员必须知道的内存知识【英】
    闭包,懂不懂由你,反正我是懂了
    什么是闭包,我的理解
    浅析Java中的访问权限控制
    Java访问控制
    Java修饰符public,private,protected及默认的区别
  • 原文地址:https://www.cnblogs.com/lin0/p/13651821.html
Copyright © 2020-2023  润新知