插入数据
PUT /megacorp/employee/1 { "first_name" : "John", "last_name" : "Smith", "age" : 25, "about" : "I love to go rock climbing", "interests": [ "sports", "music" ] }
megacorp 是index 索引,等于mysql里的库
employee 是type  类型  ,等于mysql里的表

1是 id ,等于mysql里的列
"first_name" : "John",
    "last_name" :  "Smith",
    "age" :        25,
    "about" :      "I love to go rock climbing",
    "interests": [ "sports", "music" ]  是 文本 ,等于mysql里的字段

检索数据
GET /megacorp/employee/1    获取megacorp 索引里employee 类型里 id为1的数据
GET /megacorp/employee/_search     获取megacorp 索引里employee 类型里 所有id所有数据

GET /megacorp/employee/_search?q=last_name:Smith    获取megacorp 索引里employee 类型里  条件为last_name是smith的数据(q=QueryString)
GET /megacorp/employee/_search
{
    "query" : {
        "match" : {
            "last_name" : "Smith"
        }
    }
}                                                   与上一个查询效果相同,写法不同

GET /megacorp/employee/_search
{
    "query" : {
        "bool": {
            "must": {                   must 表示必须符合条件
                "match" : {
                    "last_name" : "smith" 
                }
            },
            "filter": {
                "range" : {             filter表示条件过滤   gt大于
                    "age" : { "gt" : 30 } 
                }
            }
        }
    }
}

GET /megacorp/employee/_search
{
    "query" : {
        "match" : {                            代表包含该文本的所有数据,根据符合度高低进行排序
            "about" : "rock climbing"          在about字段上所有符合条件的
        }
    }
}

GET /megacorp/employee/_search
{
    "query" : {
        "match_phrase" : {                  代表要完全符合下面的查询条件
            "about" : "rock climbing"
        }
    }
}
 
GET /megacorp/employee/_search
{
    "query" : {
        "match_phrase" : {
            "about" : "rock climbing"
        }
    },
    "highlight": {                  高亮查询
        "fields" : {
            "about" : {}
        }
    }
}

GET /megacorp/employee/_search
{
  "aggs": {
    "all_interests": {                  等于mysql中group by的作用   
      "terms": { "field": "interests" }   根据字段 interests 做分类
    }
  }
}

GET /megacorp/employee/_search                组合查询,先匹配 last_name 等于smith 的,再根据interests 进行group by
{
  "query": {
    "match": {
      "last_name": "smith"
    }
  },
  "aggs": {
    "all_interests": {
      "terms": {
        "field": "interests"
      }
    }
  }
}


GET /megacorp/employee/_search                 聚合函数 
{
    "aggs" : {
        "all_interests" : {
            "terms" : { "field" : "interests" },
            "aggs" : {
                "avg_age" : {
                    "avg" : { "field" : "age" }
                }
            }
        }
    }
}


/_search在所有的索引中搜索所有的类型
/gb/_search在 gb 索引中搜索所有的类型/gb,
us/_search
在 gb 和 us 索引中搜索所有的文档
/g*,u*/_search在任何以 g 或者 u 开头的索引中搜索所有的类型
/gb/user/_search在 gb 索引中搜索 user 类型
/gb,us/user,tweet/_search在 gb 和 us 索引中搜索 user 和 tweet 类型
/_all/user,tweet/_search在所有的索引中搜索 user 和 tweet 类型

GET /_search?size=5          分页,每页5条
GET /_search?size=5&from=5   从第5页开始第5页结束
GET /_search?size=5&from=10  从第5也开始第10页结束
 
GET /_all/tweet/_search?q=tweet:elasticsearch    获取_all索引里tweet类型里  tweet字段包含elasticsearch文本
GET /_search?q=%2Bname%3Ajohn+%2Btweet%3Amary     模糊查询
 
 
 
 
 
 
 


 
 
 


 
posted on 2021-12-20 16:56  我叫福禄娃  阅读(36)  评论(0编辑  收藏  举报