ElasticSearch

1.es操作

GET _cat/indices     //查看所有索引

2.索引操作(index)

PUT /myindex     //创建索引
GET /myindex     //查看索引
DELETE /myindex  //删除索引

3.文档操作

POST /myindex/_doc    //添加数据
POST /myindex/_doc/id //数据自定义id
DELETE /myindex/_doc/id // 数据自定义id

//查询
GET  /myindex/_doc/id //查询id
GET  /myindex/_search //全部数据
GET  /myindex/_search //key为value的数据
{
	"from": 0,//从第几条开始
	"size": 10,//查询多少
	"query":{
		"match":{
            //match 分词匹配查询 
            //match_all 全量查询
            //match_phrase 匹配到一个词 
            //team  完全匹配
			"key":"value"
		}
	},
	"_source": ["name"],//显示多少字段
	"sort":{
		"name":{
			"order" : "desc" //asc
		}
	}
}

//条件查询
{
	"query": {
		"bool":{
			"must":[
                //should 或者or
                //must 同时满足and
                //must_not 同时不满足
				{
					"match":{
						"key1":"value1"
					}
				},
				{
					"match":{
						"key2":"value2"
					}
				}
			],
			"filter":{//范围查询
				"range":{
					"age":{
                        "gt":20//大于20
                        "gte":20//大于等于20
                        "eq":30//等于30
                        "lt":20//小于20
                        "lt":20//小于20
                    }
				}
			}
		}
	}
}
//聚合查询
{
    "aggs":{
        "aggsname":{//自定义名称
            "team":{
                //team分组 avg取平均值
                "field":"name"//根据上面类型匹配字段
            }
        }
    },
    "size":0//不需要原始数据,只看聚合结果
}

4.mapping

GET /myindex/_mapping 获取mapping
PUT /myindex/_mapping 添加mapping
{
    "properties":{
        "name":{//字段名称
            "type":"text",//可以分词查询
            "index":true//会被索引并且可以查询
        },
        "sex":{//字段名称
            "type":"keyword",//不分词完整匹配
            "index":true//会被索引并且可以查询
        },
    }
}