ElasticSearch

1.基本概念

    1.inde(索引)
      动词:相当于Mysql中的indert
      名词:相当于Mysql中的Database
    2.Type(类型)
      在index(索引)中,可以定义一个或多个类型 
      类似于Mysql中的Table;每一种类型的数据放在一起
    3.Document(文档)
      保存在某个索引下,某种类型(Type)的一个数据(document),文档是JSON格式的,Document就像Mysql中的某个Tabel里面的内容

ElasticSearch

2.命令

     1._cat
      GET  /_cat/nodes :查看所有节点
      GET /_cat/helth :查看es健康状况
      GET /_cat/master:查看主节点 
      GET /_cat/indices: 查看所有索引    
     
     2.新增文档(保存)
        保存一个数据,保存在哪个索引的哪个类型下,指定哪个唯一标识
        PUT customer/external/1; 在customer索引下的external类型下保存1号数据 :
        {
        “name":"John Doe"
        }
     PUT和POST都可以保存
     POST新增:如果不指定id,会自动生成id。指定id就会修改这个数据,并新增版本号
     PUT可以新增可以修改。PUT必须指定id;由于需要指定id,我们一般都用来修改操作
  
     3.查询文档
        GET customer/external/1 
          _index:在那个索引
          _type:在哪个类型下
          _id:记录id
          _version:版本号
          _seq_no:并发控制字段,每次跟新就会+1,用来做乐观锁
          _primary_term:主分片重新分配,如重新,就会变化
          _source:真正内容
   
     4.跟新文档
       跟新携带?if_seq_no=0&if_primary_term=1 做乐观锁
       POST /customer/external/1/_update:会对比元数据,与原来一样就什么都不做,version,seq_no都不变
  
       {
        "doc":{
            "name":"John Deo2"
           }
        }

       PUT customer/external/1
      {
        "name":"John Doe2"
       }
        POST操作会对比原文档数据,如果相同不会有什么操作。文档version不增加 PUT操作总会将数据重新保存并增加version版本
       场景:
           对于大并发更新,不带update
           对于大并发查询偶尔更新,带update;对比跟新   

     5.删除文档&索引
       DELETE customer/external/1
       DELETE customer
     
     6.bulk批量API
     POST customer/external/_bulk
     
     7.检索
       ES支持两种基本方式检索:
          一个是通过REST resquest URI 发送搜索参数(uri + 检索参数)
          一个是通过使用 REST request body 来发送(uri + 请求体)

ElasticSearch
ElasticSearch

上一篇:AS-External-LSA


下一篇:cube.js 响应内容压缩