创建文档
PUT /ecommerce/product/1{"name":"jiaqiangban gaolujie yagao","desc":"gaoxiao meibai","price": 30,"produer":"gaolujie producer","tags":["meibai", "fangzhu"]}
查看文档
GET /ecommerce/product/1
修改文档
POST /ecommerce/product/1
{
"price":50
}
替换文档
与插入语法相同,只要id相同即会覆盖,为空字段也会进行覆盖。例如下面例子中tags字段为空,而原来的文档中包含tags字段,那么替换后文档中tags字段为空
PUT /ecommerce/product/1
{
"name":"jiaqiangban gaolujie yagao",
"desc":"gaoxiao meibai",
"price": 30,
"produer":"gaolujie producer"
}
删除文档
DELETE /ecommerce/product/1
query string search
GET /ecommerce/product/_search
query DSL
全量查询
GET /ecommerce/product/_search
{
"query": {
"match_all": {}
}
}
匹配+排序
GET /ecommerce/product/_search
{
"query": {
"match": {
"name": "yagao"
}
},
"sort": [
{
"price": "desc"
}
]
}
GET es_product/_search
{
"query": {
"match": {
"name": {
"query": "zhonghua yagao",
"operator": "and"
}
}
}
}
分页
GET /ecommerce/product/_search
{
"from": 0,
"size": 1,
"query": {
"match_all": {}
}
}
指定返回字段
支持通配符_source:[“name*”]
GET /ecommerce/product/_search
{
"query": {
"match_all": {}
},
"_source": ["name","price"]
}
脚本字段
GET .kibana_1/_search
{
"script_fields": {
"new_field": {
"script": {
"lang": "painless",
"source": "doc['type'].value + '-hello'"
}
}
},
"query": {
"match_all": {}
}
}
短语搜索
GET es_product/_search
{
"query": {
"match_phrase": {
"name": "zhonghua yagao"
}
}
}
GET es_product/_search
{
"query": {
"match_phrase": {
"name": {
"query": "zhonghua yagao",
"slop": 1
}
}
}
}
query filter
GET /ecommerce/product/_search
{
"query": {
"bool": {
"must":{
"match":{
"name":"yagao"
}
},
"filter": {
"range": {
"price": {
"gt": 25
}
}
}
}
}
}
full-text search
GET /ecommerce/product/_search
{
"query": {
"match": {
"producer": "zhonghua producer"
}
}
}
phrase search
GET /ecommerce/product/_search
{
"query": {
"match_phrase": {
"producer": "zhonghua producer"
}
}
}
highlight search
GET /ecommerce/product/_search
{
"query": {
"match_phrase": {
"producer": "zhonghua producer"
}
},
"highlight": {
"fields": {
"producer":{}
}
}
}
求和
GET /ecommerce/product/_search
{
"size": 0,
"aggs": {
"group_by_tag": {
"terms": {
"field": "tags"
}
}
}
}
匹配后求和
GET /ecommerce/product/_search
{
"size": 0,
"query": {
"match": {
"name": "yagao"
}
},
"aggs": {
"group_by_tag": {
"terms": {
"field": "tags"
}
}
}
}
分组后求平均值
GET /ecommerce/product/_search
{
"size": 0,
"aggs": {
"group_by_tag": {
"terms": {
"field": "tags"
},
"aggs":{
"avg_price": {
"avg":{
"field": "price"
}
}
}
}
}
}
分组后求平均再排序
GET /ecommerce/product/_search
{
"size": 0,
"aggs": {
"group_by_tag": {
"terms": {
"field": "tags",
"order": {
"avg_price": "asc"
}
},
"aggs":{
"avg_price": {
"avg":{
"field": "price"
}
}
}
}
}
}
指定范围分组后再分组最后求平均
GET /ecommerce/product/_search
{
"size": 0,
"aggs": {
"group_by_range_price": {
"range": {
"field": "price",
"ranges": [
{
"from": 20,
"to": 30
},
{
"from": 30,
"to": 40
},
{
"from": 50,
"to": 60
}
]
},
"aggs": {
"group_by_tag": {
"terms": {
"field": "tags"
},
"aggs": {
"avg_price": {
"avg": {
"field": "price"
}
}
}
}
}
}
}
}
