插入数据
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 模糊查询