zoukankan      html  css  js  c++  java
  • ElasticSearch基础 增删改查入门归纳

    基本概念:index库>type表>document文档

    即index相当于db库  type类似表 document就是表中每行json数据 es保存的数据是json类型

    结构示意图如下

    1.检索es信息

    1)GET /_cat/nodes:查看所有节点
    如:http://192.168.56.10:9200/_cat/nodes2)GET /_cat/health:查看es健康状况
    (3)GET /_cat/master:查看主节点
    (4)GET/_cat/indicies:查看所有索引 ,等价于mysql数据库的show databases;

    2.新增文档

    用postman测试
    put http://192.168.112.144:9200/customer/external/1
    数据{
     "name":"John Doe"
    }
    
    新增成功
    
    PUT和POST区别
    POST新增。如果不指定id,会自动生成id。指定id就会修改这个数据,并新增版本号;
    可以不指定id,不指定id时永远为创建
    指定不存在的id为创建
    指定存在的id为更新,而版本号会根据内容变没变而觉得版本号递增与否
    
    PUT可以新增也可以修改。PUT必须指定id;由于PUT需要指定id,我们一般用来做修改操作,不指定id会报错。
    必须指定id
    版本号总会增加


    乐观锁
    在每次操作es时都会出现_seq_no 和_primary_term 这两个字段是一般做加锁判断
    如字段值变了表示数据被改了
    如 put http://192.168.112.151:9200/customer/external/1?if_seq_no=3&if_primary_term=12 给加锁

    3.修改文档

    同上类似 如
    put http://192.168.112.144:9200/customer/external/1
    post http://192.168.112.151:9200/customer/external/1
    {
     "name":"John Doe2"
    }


    还有一种post带update
    post http://192.168.112.151:9200/customer/external/1/_update
    {
     "doc":{
         "name":"John Doe1"
     }
    }
    //带_update与不带的区别是要把参数放在"doc"中 且若更新数据与原数据一致时_version _seq_no _primary_term都不会改变

    4.删除文档

    删除文档
    如
    delete http://192.168.112.151:9200/customer/external/2
    
    删除索引
    如
    http://192.168.112.151:9200/customer
    
    //es没有提供删除类型的方式 把文档全部删除相当于删除了类型
  • 相关阅读:
    install redis and used in golang on ubuntu 14.04
    在ionic项目中使用极光推送实现推送 & 服务器端代码
    安装go 1.5 & 部署
    python 简单计算器
    双指针算法
    python set()去重的底层原理
    python实现单例模式总结
    __str__和__repr的区别
    python反射详解
    python isinstance和issubclass区别
  • 原文地址:https://www.cnblogs.com/hbhb/p/14604601.html
Copyright © 2011-2022 走看看