Elasticsearch中的文档就相当于MySQL数据库中的表,文档中的数据格式为JSON格式。
首先创建一个索引(数据库),然后在索引中创建文档(表),并添加数据。
创建一个名为user的索引:
PUT : localhost:9200/user
向user索引中创建文档并添加数据:
POST : localhost:9200/user/_doc
请求体:
{
"name":"张三",
"age":18,
"sex":"男",
"email":"111222333@qq.com"
}
如果在添加数据的时候没有指定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
在进行查询之前先向user索引中添加几条数据
{
"name":"李四",
"age":16,
"sex":"男",
"email":"23434353@qq.com"
}
{
"name":"1+1=王",
"age":22,
"sex":"男",
"email":"123123123@qq.com"
}
{
"name":"王五",
"age":25,
"sex":"女",
"email":"wangwu@Outlook.com"
}
{
"name":"curry",
"age":30,
"sex":"男",
"email":"curry30@nba.com"
}
根据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":{ //查询所有
}
},
"from":0, //页码(从第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" //求平均值的字段
}
}
}
}
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_43598687/article/details/125079247
内容来源于网络,如有侵权,请联系作者删除!