ELasticsearch 基本操作

来源:互联网 发布:阿里云对象存储oss 编辑:程序博客网 时间:2024/05/16 04:32

1.创建索引

PUT  http://node-131:9200/people{  "settings" :{     "number_of_shareds":3,     "number_of_replices":1  },  "mappings":{    "man":{      "properties":{         "name":{           "type":"text"         },         "country":{           "type":"keyword"         },         "age":{            "type":"integer"         },         "date":{           "type":"date",           "format":"yyyy-MM-dd HH:mm:ss"         }      }    },    "woman":{    }  }}

People为索引名

2.添加数据

Id 随机生成的:

POST http://node-131:9200/people/man/{  "age":22,  "name":"傻狗",  "country":"中国",  "date":"2017-12-11 10:10:11"}

指定ID

POST  http://node-131:9200/people/man/2{  "age":22,  "name":"冬瓜",  "country":"中国",  "date":"2017-12-11 10:10:11"}

3.修改数据

直接修改:

POST http://node-131:9200/people/man/2/_update{   "doc":{    "age":110  }}

脚本修改:

POST http://node-131:9200/people/man/1/_update{   "script":{  "lang":"painless",  "inline":"ctx._source.age += 10"  }}

参数形式:

{   "script":{  "lang":"painless",  "inline":"ctx._source.age += params.age",  "params":{    age:100   }  }}

4.删除数据

DELETE  http://node-131:9200/people/man/2/

5. 查询数据

首先插入一些数据
这里写图片描述

简单查询:

通过ID查询

GET http://node-131:9200/people/man/1

查询所有:

POST http://node-131:9200/people/_search{ "query":{    "match_all":{}  } }

指定查询范围

{ "query":{    "match_all":{}  },  "from":1,  "size":10}

条件查询:

查询name字段包括“瓜”的数据

POST http://node-131:9200/people/_search{ "query":{    "match":{     "name":"瓜"    }  } }

添加查询结构排序:

{ "query":{    "match":{     "name":"瓜"    }  },  "sort":[    {"age":{"order":"desc"}}  ]}

聚合查询
按照country字段进行group by 查询

POST http://node-131:9200/people/_search{  "aggs":{    "group_by_country":{       "terms":{          "field":"country"       }    } }}

group_by_country 为自定义名字 aggs terms field为关键字
这里写图片描述

聚合函数查询:
Stats 统计函数

{  "aggs":{    "stats_age":{       "stats":{          "field":"age"       }    } }}

查询结果
这里写图片描述