文章目录
创建文档并添加数据
Elasticsearch中的文档就相当于MysqL数据库中的表,文档中的数据格式为JSON格式。
首先创建一个索引(数据库),然后在索引中创建文档(表),并添加数据。
创建一个名为user的索引:
PUT : localhost:9200/user
向user索引中创建文档并添加数据:
POST : localhost:9200/user/_doc
请求体:
{
"name":"张三","age":18,"sex":"男","email":"[email protected]"
}
如果在添加数据的时候没有指定id,Elasticsearch会自动生成一个随机id。 但是使用随机生成的id进行查询的时候会比较复杂,因此,我们也可以手动给数据添加id,
手动给数据添加id只需要在请求路径后面加上指定id即可,如下:
POST : localhost:9200/user/_doc/10001
或
PUT:localhost:9200/user/_doc/10001 (在指定id的条件下,可以使用PUT请求方式)
修改文档数据
全量修改
PUT :localhost:9200/user/_doc/10001
局部数据修改
POST:localhost:9200/user/_update/10001
删除文档数据
DELETE : localhost:9200/user/_doc/10001
查询文档数据
{
"name":"李四","age":16,"email":"[email protected]"
}
{
"name":"1+1=王","age":22,"email":"[email protected]"
}
{
"name":"王五","age":25,"sex":"女","email":"wangwu@outlook.com"
}
{
"name":"curry","age":30,"email":"[email protected]"
}
主键查询和全查询
根据id查询GET : localhost:9200/user/_doc/10001
查询所有数据
GET : localhost:9200/user/_search
条件查询
GET : localhost:9200/user/_search?q=name:王
GET : localhost:9200/user/_search
{
"query":{
"match":{
"name":"王"
}
}
}
分页查询
GET : localhost:9200/user/_search
{
"query":{
"match_all":{ //查询所有
}
},"from":0,//页码(从第0页开始)
"size":2 //每页显示条数
}
查询部分属性
GET : localhost:9200/user/_search
{
"query":{
"match_all":{ //查询所有
}
},//页码(从第0页开始)
"size":2,//每页显示条数
"_source":["name","age"] //需要查询的属性
}
查询排序
GET : localhost:9200/user/_search
{
"sort":{
"age":{
"order":"asc" //按年龄升序查询
}
}
}
多条件查询
1. 多个条件同时满足(and)
GET : localhost:9200/user/_search
{
"query":{
"bool":{
"must":[
{
"match":{
"name":"王"
}
},{
"match":{
"sex":"男"
}
}
]
}
}
}
2. 满足多个条件中的一个(or)
GET : localhost:9200/user/_search
{
"query":{
"bool":{
"should":[
{
"match":{
"name":"王"
}
},{
"match":{
"name":"张"
}
}
]
}
}
}
范围查询
GET : localhost:9200/user/_search
{
"query":{
"bool":{
"filter":{
"range":{
"age":{
"gt":22
// gt: > 大于(greater than)
// lt: < 小于(less than)
// gte: >= 大于或等于(greater than or equal to)
// lte: <= 小于或等于(less than or equal to)
}
}
}
}
}
}
完全匹配查询
GET : localhost:9200/user/_search
{
"query":{
"match_phrase":{
"name":"1+1=王"
}
}
}
聚合查询
分组
GET : localhost:9200/user/_search
{
"aggs":{ //聚合操作
"age_group":{ //名称,随意起名
"terms":{ //分组
"field":"age" //分组字段
}
}
}
}
求平均值
GET : localhost:9200/user/_search
{
"aggs":{ //聚合操作
"age_avg":{ //名称,随意起名
"avg":{ //求平均值
"field":"age" //求平均值的字段
}
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。