• ElasticSearch 使用


    ElasticSearch 使用

    _cat

    # 查看所有节点
    http://192.168.188.128:9200/_cat/nodes
    
    # 查看 es 健康状况
    http://192.168.188.128:9200/_cat/health
    
        # 查看主节点
    http://192.168.188.128:9200/_cat/master
    
    # 查看所有索引
    http://192.168.188.128:9200/_cat/indices
    

    索引

    PUT customer/external/1;在 customer 索引下的 external 类型下保存 1 号数据为

    # put 保存数据
    http://192.168.188.128:9200/customer/external/1  
    
    {
        //元数据
        "_index": "customer",   
        
        //类型
        "_type": "external",    
        
        //id
        "_id": "1",             
        
        //版本信息
        "_version": 1,          
        
        //create:新建的数据 updated:更新数据
        "result": "updated",    
        
        //分片
        "_shards": {
            "total": 2,
            "successful": 1,
            "failed": 0
        },
        
        "_seq_no": 2,
        "_primary_term": 5
    }
    
    # post保存数据
    http://192.168.188.128:9200/customer/external/
    
    • post和put保存区别
    POST 新增:
      如果不指定 id,会自动生成 id。
      指定 id 就会修改这个数据,并新增版本号
      
    PUT 可以新增可以修改。
      PUT 必须指定 id;
      由于 PUT 需要指定id,我们一般都用来做修改操作,不指定 id 会报错。
    

    查询

    # 获取信息
    http://192.168.188.128:9200/customer/external/1
    {
        //索引
        "_index": "customer",
        
        //类型
        "_type": "external",
        
        //记录 id
        "_id": "1",
        
        //版本号
        "_version": 2,
        
        //并发控制字段,每次更新就会+1,用来做乐观锁
        "_seq_no": 2,
        
        //同上,主分片重新分配,如重启,就会变化
        "_primary_term": 5,
        
        "found": true,
        
        //保存的信息
        "_source": {
            "name": "Jack Deon"
        }
    }
    

    更新

    # POST更新
    //进行更新前,会比较新数据和老数据的区别;若无改变则不进行更新 version、_seq_no不发生改变
    http://192.168.188.128:9200/customer/external/1/_update
    请求的JSON信息:
    {
        "doc":{
            "name": "John"
        }
    }
    
    # POST更新
    //进行更新前,不会比较新、老数据。
    //若想比较 则使用doc括起来
    http://192.168.188.128:9200/customer/external/1
    请求的JSON信息:
    {
        "name": "John Doe2"
    }
    
    # PUT更新
    //PUT更新(不带_update) 都会直接更新数据
    http://192.168.188.128:9200/customer/external/1
    请求的JSON信息:
    {
        "name": "John Doe2"
    }
    
    # 更新同时增加属性
    ## POST更新同时增加属性
    http://192.168.188.128:9200/customer/external/1/_update
    请求的JSON信息:
    {
        "doc": { 
        "name": "Jane Doe",
        "age": 20
        }
    }
    
    ## PUT更新同时增加属性
    http://192.168.188.128:9200/customer/external/1
    请求的JSON信息:
    {
        "name": "Jane Doe",
        "age": 20
    }
    
    PUT 和 POST 不带_update 也可以
    
    • POST更新和PUT更新区别
    不同:POST 操作会对比源文档数据,如果相同不会有什么操作,文档version不增加PUT操作总会将数据重新保存并增加 version 版本;
    
     带_update 对比元数据如果一样就不进行任何操作。看场景;
    
     对于大并发更新,不带 update;
     对于大并发查询偶尔更新,带 update;对比更新,重新计算分配规则。
    

    删除

    # 删除一条数据
    http://192.168.188.128:9200/customer/external/1
    
    # 删除索引
    http://192.168.188.128:9200/customer
    

    bulk 批量 API

    使用kibana

    # kibana dev tools执行
    
    POST customer/external/_bulk
    {"index":{"_id":"1"}}
    {"name":"John Doe"}
    {"index":{"_id":"2"}}
    {"name":"Jane Doe"}
    
    # kibana delete|create|update操作
    POST /_bulk
    {"delete":{"_index":"website","_type":"blog","_id":"123"}}
    {"create":{"_index":"website","_type":"blog","_id":"123"}}
    {"title":"My first blog post"}
    {"index":{"_index":"website","_type":"blog"}}
    {"title":"My second blog post"}
    {"update":{"_index":"website","_type":"blog","_id":"123"}}
    {"doc":{"title":"My updated blog post"}}
    
    # 样本测试数据
    https://github.com/elastic/elasticsearch/blob/master/docs/src/test/resources/accounts.json
    
    # POST请求
    POST /bank/account/_bulk
    请求的JSON信息:
    {
        从上面网址获取JSON串
    }
    
  • 相关阅读:
    Excel 函数
    selenium+python自动化测试(二)对浏览器的简单操作
    selenium+python自动化测试(一)环境
    py中mongodb使用
    ESQL调oracle存储过程
    boost.asio简单入坑
    浅析tcp中read阻塞
    14 天堂电影信息爬取
    13 爬取豆瓣电影网电影信息
    12 lxml&XPath结合使用(提取数据详解)
  • 原文地址:https://www.cnblogs.com/HOsystem/p/14508964.html
Copyright © 2020-2023  润新知