zoukankan      html  css  js  c++  java
  • ES7 基础语法学习

    个人学习笔记,谢绝转载!!!

    原文:https://www.cnblogs.com/wshenjin/p/15079858.html


    索引的操作

    查看所有索引:

    GET /_cat/indices?v
    

    创建索引:

    PUT /索引名称
    
    PUT /people
    {
      "acknowledged" : true,
      "shards_acknowledged" : true,
      "index" : "people"
    }
    

    删除索引 :

    DELETE /索引名称
    
    DELETE /ecommerce
    {
      "acknowledged" : true
    }
    

    给索引插入数据:

    ##自动创建ID
    POST /索引名称/_doc
    ##指定id,插入or更新
    POST /索引名称/_doc/id
    PUT /索引名称/_doc/id
    
    POST /people/_doc {
        "name":"lala",
        "age":19
    }
    
    
    POST /people/_doc/3 {
        "name":"gaga",
        "age":19
    }   
    
    PUT  /people/_doc/4 {
        "name":"kaka",
        "age":19
    }          
    

    更新指定字段:

    POST /索引名称/_update/id {
        "doc":{
            // 更新内容
        }
    }
    
    POST /people/_update/4 {
        "doc": 
        {"age":30}
    } 
    
    ##支持简单脚本
    POST /people/_update/5 {
        "script": "ctx._source.age += 10"
    }
    

    删除数据:

    DELETE /索引名称/_doc/id
    
    DELETE /people/_doc/4 
    

    查询数据:

    # 查询所有
    GET /索引名称/_search
    # 根据ID查询
    GET /索引名称/_doc/id
    
    GET /people/_doc/4
    

    Query String

    查询全部:

    GET /索引名称/_search
    

    字段说明:

    • took:耗费了几毫秒
    • timed_out:是否超时
    • _shards:数据拆成几个分片(以及成功/失败的分片计数),所以对于搜索请求,会打到所有的primary shard(或者是它的某个replica shard也可以)
    • hits.total:查询结果的数量,即几个document
    • hits.total.value:确切总命中计数的值
    • hits.total.relation:
    • hits.max_score:score的含义,就是document对于一个search的相关度的匹配分数,越相关,就越匹配,分数也高
    • hits.hits:包含了匹配搜索的document的详细数据
    • hits.sort:结果排序键

    简单按条件查找:

    ##查找name为“gigi”的记录
    GET /people/_search?q=name:"gigi"
    
    ##查找name为“gigi”的记录,只返回name,age两个字段
    GET /people/_search?q=name:"gigi"&_source=name,age
    
    ##查找name为“gigi”的记录,只返回name,age两个字段,并按年龄降序
    GET /people/_search?q=name:"gigi"&_source=name,age&sort=age:desc
    
    ##查找name为“gigi”并且age为18的记录
    GET /people/_search?q=name:"gigi"&q=age:20'
    

    Query DSL

    查询全部:

    GET /索引名称/_search {
        "query": { "match_all": {} }
    }
    

    按条件查找:

    ##查找name为“gigi”的记录
    GET /people/_search {
        "query": { 
            "match": { "name": "gigi" }
        }
    }
    

    返回特定字段:

    ##查找name为“gigi”的记录,只返回name,age两个字段
    GET /people/_search {
        "query": { 
          "match": { "name": "gigi"} 
        }, 
        "_source" : ["name", "age"] 
    }
    

    排序:

    ##查找name为“gigi”的记录,只返回name,age两个字段,并按年龄降序
    GET /people/_search {
        "query": { 
          "match": { "name": "gigi"} 
        }, 
        "_source" : ["name", "age"],
        "sort": [ 
            {
                "age" : {"order": "desc"}
            }
        ]
    }
    

    分页查询:

    GET /people/_search {
      "query": {
        "match_all": {}
      },
      "from": 2,
      "size": 2
    }
    
    - from 从第几条开始,起始为0
    - size 返回多少条记录
    

    bool查询:

    ##搜索address中包含"mill"或"lane"的文档:
    GET/bank/_search {
        "query" : {
            "match" : { "address" : "mill lane"} 
        }
    }
    
    ##搜索address中包含"mill"和"lane"的文档:
    GET /bank/_search {
        "query" : { 
            "bool" : { 
                "must" : [ { 
                        "match" : { "address" : "mill" }
                    }, 
                    { 
                        "match" : { "address" : "lane" } 
                    } 
               ]
           }
        }
    }
    
    
    ##搜索address中既不包含"mill"也不包含"lane"的文档:
    GET /bank/_search {
        "query" : { 
            "bool" : { 
                "must_not" : [ { 
                        "match" : { "address" : "mill" }
                    }, 
                    { 
                        "match" : { "address" : "lane" } 
                    } 
               ]
           }
        }
    }
    
    ##搜索年龄40岁并且state中不包含ID的文档:
    GET /bank/_search { 
        "query" : { 
            "bool" : { 
                "must" : [ {
                    "match" : { "age" : "40" } 
                    } 
                ],
                "must_not" : [ {
                    "match" : { "state" : "ID" } 
                    } 
                ] 
            }
        }
    }
    

    range查询:

    ##搜索20000=<balance<=30000的文档:
    GET /bank/_search {
        "query" : { 
            "bool" : { 
                "must" : { "match_all" : {} 
            }, 
            "filter" : { 
                "range" : { "balance" : {
                    "gte" : "20000",
                    "lte" : "30000" } 
                     } 
                 }
            }
        }
    }
    

    参考

    https://www.cnblogs.com/vchar/p/13458525.html

  • 相关阅读:
    教你一个vue小技巧,一般人我不说的
    分享一个好用的函数吧,将js中的对象转成url参数
    Vue源码探究-源码文件组织
    后端分布式系列:分布式存储-HDFS DataNode 设计实现解析
    Android Animation动画详解(二): 组合动画特效
    后端分布式系列:分布式存储-HDFS NameNode 设计实现解析
    Android开源框架ViewPageIndicator和ViewPager实现Tab导航
    解决某些手机RadioGroup中的RadioButton不居中(右移)问题
    Android Animation动画详解(一): 补间动画
    后端分布式系列:分布式存储-HDFS 架构解析
  • 原文地址:https://www.cnblogs.com/wshenjin/p/15079858.html
Copyright © 2011-2022 走看看