新建索引
PUT请求
http://192.168.100.73:9200/book/
地址:端口号/索引名称
插入
POST请求
http://192.168.100.73:9200/book/math/1
地址:端口号/索引名/类型/id
{
"name":"语文数学",
"contry":"china",
"age":"7",
"date":"1987-03-07"
}
按照自己定义的数据格式插入数据
修改
POST 请求
http://192.168.100.73:9200/book/math/1/_update
地址:端口号/索引名/类型/id/_update
指定文档修改
{
"doc":{
"name":"英语"
}
}
在doc中根据键修改数据
通过脚本修改
第一种修改数据
{
"script":{
"lang":"painless",
"inline":"ctx._source.age += 10"
}
}
第二种修改数据
{
"script":{
"lang":"painless",
"inline":"ctx._source.age = params.age",
"params":{
"age":100
}
}
}
删除
删除文档
DELETE 请求
http://192.168.100.73:9200/book/math/1
地址:端口号/索引名/类型/id
删除索引
DELETE 请求
http://192.168.100.73:9200/book
地址:端口号/索引名
查询
简单查询
GET 请求
http://192.168.100.73:9200/book/math/1
{
"_index": "book",
"_type": "math",
"_id": "1",
"_version": 4,
"found": true,
"_source": {
"name": "英语",
"contry": "china",
"age": 100,
"date": "1987-03-07"
}
}
条件查询
POST请求
http://192.168.100.73:9200/book/_search
{
"query":{
"match_all":{}
}
}
{
"query":{
"match_all":{}
},
"from":1, :指定从哪返回
"size":1 :表示返回几条数据
}
都是用query执行查询语句
{
"took": 1, :表示响应的时间
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": { :表示全部响应的结果
"total": 2,
"max_score": 1,
"hits": [
{
"_index": "book",
"_type": "math",
"_id": "ikQr1GMBzx52oHJmmJhC",
"_score": 1,
"_source": {
"name": "语文数学",
"contry": "china",
"age": "7",
"date": "1987-03-07"
}
},
{
"_index": "book",
"_type": "math",
"_id": "1",
"_score": 1,
"_source": {
"name": "英语",
"contry": "china",
"age": 100,
"date": "1987-03-07"
}
}
]
}
}
聚合查询
POST请求
http://192.168.100.73:9200/book/_search
{
"aggs":{
"group_by_word_count":{ :聚合名称
"terms":{
"field":"type" :要分组的字段名称
}
}
}
}
{
"aggs":{
"grades_word_count":{
"stats":{ :函数(min max avg)
"field":"age" :要计算的字段
}
}
}
}
高级查询
子条件查询:特定字段查询所指特定值
Query context 在查询过程中,除了判断文档是否满足查询条件外,ES还会计算一个_score来标识匹配的程度,旨在判断目标文档和查询条件匹配的有多好
全文本查询 针对文本类型数据
{
"query":{
"match":{ :模糊匹配
"name":"数学"
}
}
}
{
"query":{
"match_phrase":{ :精确查询
"name":"英语"
}
}
}
{
"query":{
"multi_match":{ :匹配多个字段
"query":"数学",
"fields":["name","contry"] :指定字段
}
}
}
{
"query":{
"query_string":{ :查询多个条件
"query":"数学 OR 英语"
}
}
}
字段级别查询 针对结构化数据,如数字/日期等
Filter context 在查询过程中,只判断该文档是否满足条件,只有YES或者NO
{
"query":{
"bool":{
"filter":{ :数据过滤的
"term":{
"age":7
}
}
}
}
}
复合条件查询:以一定的逻辑组合子条件查询
固定分数查询
{
"query":{
"constant_score":{
"filter":{
"match":{
"age":7
}
},
"boost":2 是改变_score值的
}
}
}
{
"query":{ :或者的数据结构
"bool":{
"should":[ :类似于sql的or /"must":类似与必须满足以下条件
{
"match":{
"age":7
}
},
{
"match":{
"name":"数学"
}
}
]
}
}
}
{
"query":{
"bool":{
"must_not":{ :一定不能满足的条件
"term":{
"age":7
}
}
}
}
}