1.插入数据put
PUT kuamhsheng/user/5
{
"name":"狂神说Java",
"age":23,
"desc":"da",
"tags":["时髦","技术宅男","落落大方"]
}
PUT kuamhsheng/user/3
{
"name":"guiI",
"age":39,
"desc":"浪荡不羁",
"tags":["we暖","热情","豪爽"]
}
2.获取数据用get
GET kuamhsheng/user/3
GET kuamhsheng/user/5
获取结果
{
"_index": "kuamhsheng",
"_type": "user",
"_id": "3",
"_version": 15,
"found": true,
"_source": {
"name": "guiI",
"age": 39,
"desc": "浪荡不羁",
"tags": [
"we暖",
"热情",
"豪爽"
]
}
}
3.更新数据用post
post kuamhsheng/user/3/_update
{
"doc":{
"age":34
}
}
4.搜索_search
GET kuamhsheng/user/_search?q=age:34
精准搜索
GET kuamhsheng/user/_search
{
"query": {
"match": {
"name": "狂神"
}
}
}
搜索结果
{
"took": 1,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 2,
"max_score": 1.3367052,
"hits": [
{
"_index": "kuamhsheng",
"_type": "user",
"_id": "4",
"_score": 1.3367052,
"_source": {
"name": "狂神说前端",
"age": 45,
"desc": "时髦",
"tags": [
"精致",
"豪爽",
"霸气"
]
}
},
{
"_index": "kuamhsheng",
"_type": "user",
"_id": "5",
"_score": 0.5753642,
"_source": {
"name": "狂神说Java",
"age": 23,
"desc": "da",
"tags": [
"时髦",
"技术宅男",
"落落大方"
]
}
}
]
}
}
5.排序sort按照名字搜索,按照年龄排序
GET kuamhsheng/user/_search
{
"query": {
"match": {
"name": "狂神"
}
},"sort": [
{
"age": {
"order": "desc"
}
}
]
}
搜索结果
{
"took": 3,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 2,
"max_score": null,
"hits": [
{
"_index": "kuamhsheng",
"_type": "user",
"_id": "4",
"_score": null,
"_source": {
"name": "狂神说前端",
"age": 45,
"desc": "时髦",
"tags": [
"精致",
"豪爽",
"霸气"
]
},
"sort": [
45
]
},
{
"_index": "kuamhsheng",
"_type": "user",
"_id": "5",
"_score": null,
"_source": {
"name": "狂神说Java",
"age": 23,
"desc": "da",
"tags": [
"时髦",
"技术宅男",
"落落大方"
]
},
"sort": [
23
]
}
]
}
}
7.分页,关键字是from和size,from是从第几条数据开始,size后面的参数是显示几条数据如果从0到1只显示一个结果,0到2显示两个结果
GET kuamhsheng/user/_search
{
"query": {
"match": {
"name": "狂神"
}
},"sort": [
{
"age": {
"order": "desc"
}
}
],
"from": 0
, "size": 1
}
显示的结果只有一个
{
"took": 2,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 2,
"max_score": null,
"hits": [
{
"_index": "kuamhsheng",
"_type": "user",
"_id": "4",
"_score": null,
"_source": {
"name": "狂神说前端",
"age": 45,
"desc": "时髦",
"tags": [
"精致",
"豪爽",
"霸气"
]
},
"sort": [
45
]
}
]
}
}
当从0到2
GET kuamhsheng/user/_search
{
"query": {
"match": {
"name": "狂神"
}
},"sort": [
{
"age": {
"order": "desc"
}
}
],
"from": 0
, "size": 2
}
显示结果有两个
{
"took": 1,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 2,
"max_score": null,
"hits": [
{
"_index": "kuamhsheng",
"_type": "user",
"_id": "4",
"_score": null,
"_source": {
"name": "狂神说前端",
"age": 45,
"desc": "时髦",
"tags": [
"精致",
"豪爽",
"霸气"
]
},
"sort": [
45
]
},
{
"_index": "kuamhsheng",
"_type": "user",
"_id": "5",
"_score": null,
"_source": {
"name": "狂神说Java",
"age": 23,
"desc": "da",
"tags": [
"时髦",
"技术宅男",
"落落大方"
]
},
"sort": [
23
]
}
]
}
}
8.bool查询,查询的条件是第一个名字一定是“狂神说”,第二个年纪一定是45
must相当于mysql里面的and,所有的条件都要符合才能查询到结果
GET kuamhsheng/user/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"name": "狂神说"
}
},{
"match": {
"age": "45"
}
}
]
}
}
}
查询结果
{
"took": 87,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 3.0050578,
"hits": [
{
"_index": "kuamhsheng",
"_type": "user",
"_id": "4",
"_score": 3.0050578,
"_source": {
"name": "狂神说前端",
"age": 45,
"desc": "时髦",
"tags": [
"精致",
"豪爽",
"霸气"
]
}
}
]
}
}
9.关键字是must_not,查询年龄不是45岁的人
GET kuamhsheng/user/_search
{
"query": {
"bool": {
"must_not": [
{
"match": {
"age": "45"
}
}
]
}
}
}
查询结果唯独没有45岁这个年龄字段的结果集
{
"took": 134,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 3,
"max_score": 1,
"hits": [
{
"_index": "kuamhsheng",
"_type": "user",
"_id": "5",
"_score": 1,
"_source": {
"name": "狂神说Java",
"age": 23,
"desc": "da",
"tags": [
"时髦",
"技术宅男",
"落落大方"
]
}
},
{
"_index": "kuamhsheng",
"_type": "user",
"_id": "2",
"_score": 1,
"_source": {
"name": "zhaohua",
"age": 29,
"desc": "浪荡不羁",
"tags": [
"技术宅男",
"温暖",
"热情"
]
}
},
{
"_index": "kuamhsheng",
"_type": "user",
"_id": "3",
"_score": 1,
"_source": {
"name": "guiI",
"age": 34,
"desc": "浪荡不羁",
"tags": [
"we暖",
"热情",
"豪爽"
]
}
}
]
}
}
10.过滤filter,过滤年龄大于等于24,gte是大于等于,lte是小于等于
GET kuamhsheng/user/_search
{
"query": {
"bool": {
"must": [
{"match": {
"name": "狂神说"
}}
],"filter": {
"range": {
"age": {
"gte": 24
}
}
}
}
}
}
查询结果
{
"took": 1,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 2,
"max_score": 1.7533967,
"hits": [
{
"_index": "kuamhsheng",
"_type": "user",
"_id": "6",
"_score": 1.7533967,
"_source": {
"name": "狂神说mysql",
"age": 34,
"desc": "潇洒",
"tags": [
"古典",
"优雅"
]
}
},
{
"_index": "kuamhsheng",
"_type": "user",
"_id": "4",
"_score": 1.5579717,
"_source": {
"name": "狂神说前端",
"age": 45,
"desc": "时髦",
"tags": [
"精致",
"豪爽",
"霸气"
]
}
}
]
}
}
可以选择区间查询比如查询 年龄大于等于24,小于等于44
GET kuamhsheng/user/_search
{
"query": {
"bool": {
"must": [
{"match": {
"name": "狂神说"
}}
],"filter": {
"range": {
"age": {
"gte": 24
, "lt": 44
}
}
}
}
}
}
查询结果
{
"took": 1,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 1.7533967,
"hits": [
{
"_index": "kuamhsheng",
"_type": "user",
"_id": "6",
"_score": 1.7533967,
"_source": {
"name": "狂神说mysql",
"age": 34,
"desc": "潇洒",
"tags": [
"古典",
"优雅"
]
}
}
]
}
}