通过HTTP的方式操作ES

一、关于索引的请求

1、创建索引

使用PUT请求

http://127.0.0.1:9200/persion

'persion’代表你创建索引的名称,成功如下图所示:
请添加图片描述

2、查询单个索引

使用GET请求

http://127.0.0.1:9200/persion

'persion’代表你查询索引的名称,成功如下图所示:

3、查询全部索引状态

使用GET请求

http://127.0.0.1:9200/_cat/indices?v

4、删除索引

使用DELETE请求

http://127.0.0.1:9200/persion

'persion’代表你删除索引的名称,成功如下图所示:
请添加图片描述

二、关于文档的请求

1、创建文档

1.1、采用POST的方式

1.1.1、非幂等性

URI:http://127.0.0.1:9200/persion/_doc

Body:

{
    "name" : "张三",
    "age" : "20"
}

此方法会自动生成"_id"

1.1.2、幂等性

URI:http://127.0.0.1:9200/persion/_doc/1001

Body:

{
    "name" : "张三",
    "age" : "20"
}

“1001"是你创建文档的”_id"
请添加图片描述

1.2、采用PUT的方式(幂等性)

URI:http://127.0.0.1:9200/persion/_create/1002

Body:

{
    "name" : "张三",
    "age" : "20"
}

“1002"是你创建文档的”_id"

2、查询文档

2.1、根据id查询文档

使用GET请求

URI:http://127.0.0.1:9200/persion/_doc/1001

“1001"是你查询文档的”_id"

2.2、查询所有文档

2.2.1、不带参方式

使用GET请求

URI:http://127.0.0.1:9200/persion/_doc/_search

2.2.2、请求体方式

使用GET请求

URI:http://127.0.0.1:9200/persion/_search

Body:

{
    "query" : {
        "match_all" : {
            
        }
    }   
}

3、单条件查询

3.1、直接跟参数查询

使用GET请求

URI:http://127.0.0.1:9200/persion/_search?q=name:张三

3.2、请求体查询

使用GET请求

URI:http://127.0.0.1:9200/persion/_search

Body:

{
    "query" : {
        "match" : {
            "name" : "张三"
        }
    }   
}

4、多条件查询

4.1、同时满足条件

使用GET请求

URI:http://127.0.0.1:9200/persion/_search

{
	"query" : {
		"bool" : {
			"must" : [
				{
					"match" : {
						"name" : "张三"
					}
                },
                {
					"match" : {
						"age" : "20"
					}
				}
			]
		}
	}
}

同时满足"name"是"张三",“age"是"20”

4.2、只需要满足一个条件

使用GET请求

URI:http://127.0.0.1:9200/persion/_search

{
	"query" : {
		"bool" : {
			"should" : [
				{
					"match" : {
						"name" : "张三"
					}
                },
                {
					"match" : {
						"name" : "李四"
					}
				}
			]
		}
	}
}

只要满足"name"为"张三"或者"李四"

5、查询剔除不需要项

使用GET请求

URI:http://127.0.0.1:9200/persion/_search

Body:

{
    "query" : {
        "match_all" : {
            
        }
    },
    "_source" : ["name"]
}

表示在"_source"中的信息我们只需要"name"

6、查询排序

使用GET请求

URI:http://127.0.0.1:9200/persion/_search

Body:

{
    "query" : {
        "match_all" : {
            
        }
    },
    "sort" : {
    	"age" : {
    		"order" : "desc"
    	}
    }
}

表示根据"age"进行降序排序

tip:只能排序数字,文本是不行的

7、过滤查询

使用GET请求

URI:http://127.0.0.1:9200/persion/_search

Body:

{
    "query" : {
        "bool" : {
            "filter" : {
                "range" : {
                    "age" : {
                        "gt" : 18
                    }
                }
            }   
        }   
    }
}

查询"age"大于18的数据

8、完全匹配查询

使用GET请求

URI:http://127.0.0.1:9200/persion/_search

Body:

{
    "query" : {
        "match_phrase" : {
            "name" : "张三"
        }   
    }
}

查询"name"必须是"张三"的数据

9、高亮查询

9.1、默认高亮显示

使用GET请求

URI:http://127.0.0.1:9200/persion/_search

Body:

{
    "query" : {
        "match_phrase" : {
            "name" : "张三"
        }   
    },
    "highlight" : {
    	"fields" : {
    		"name" : {}
    	}
    }
}

条件匹配后,"name"字段高亮显示

9.2、自定义高亮显示

使用GET请求

URI:http://127.0.0.1:9200/persion/_search

Body:

{
    "query" : {
        "match_phrase" : {
            "name" : "张三"
        }   
    },
    "highlight" : {
    	"fields" : {
    		"name" : {
    			"pre_tags": [
                  "<font color='red'>"
                ],
                "post_tags": [
                  "</font>"
                ]
    		}
    	}
    }
}

10、聚合查询

10.1、根据字段分组查询

使用GET请求

URI:http://127.0.0.1:9200/persion/_search

Body:

{
	"aggs" : {
		"age_group" : {
			"terms" : {
				"field" : "age" 
			}
		}
	},
	"size" : 0  //可以去除原始查询数据减少干扰
}

"age_group"是该聚合项名称,"age"是需要聚合的字段

10.2、聚合求平局值

使用GET请求

URI:http://127.0.0.1:9200/persion/_search

Body:

{
	"aggs" : {
		"age_avg" : {
			"avg" : {
				"field" : "age" 
			}
		}
	},
	"size" : 0  //可以去除原始查询数据减少干扰
}

"age_group"是该聚合项名称,"age"是需要聚合的字段

11、分页查询

使用GET请求

URI:http://127.0.0.1:9200/persion/_search

Body:

{
    "query" : {
        "match_all" : {
            
        }
    },
    "from" : 0,
    "size" : 2
}

12、修改文档

12.1、全量修改

使用PUT请求

URI:http://127.0.0.1:9200/persion/_doc/1001

Body:

{
    "name" : "张三",
    "age" : "21"
}

“1001"是你修改文档的”_id"
请添加图片描述

12.2、局部修改

使用POST请求

URI:http://127.0.0.1:9200/persion/_update/1001

Body:

{
    "doc" : {
        "age" : "22"
    }
}

“1001"是你修改文档的”_id"

13、删除文档

使用DELETE请求

URI:http://127.0.0.1:9200/persion/_doc/1002

“1002"是你删除文档的”_id"
请添加图片描述

14、创建映射

使用PUT请求

URI:http://127.0.0.1:9200/persion/_mapping

Body:

{
    "properties" : {
        "name" : {
        	"type" : "text", //允许分词
        	"index" : true   //允许索引
        },
    }
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值