欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

通过HTTP的方式操作ES

时间:2023-06-22
文章目录

一、关于索引的请求

1、创建索引2、查询单个索引3、查询全部索引状态4、删除索引 二、关于文档的请求

1、创建文档

1.1、采用POST的方式

1.1.1、非幂等性1.1.2、幂等性 1.2、采用PUT的方式(幂等性) 2、查询文档

2.1、根据id查询文档2.2、查询所有文档

2.2.1、不带参方式2.2.2、请求体方式 3、单条件查询

3.1、直接跟参数查询3.2、请求体查询 4、多条件查询

4.1、同时满足条件4.2、只需要满足一个条件 5、查询剔除不需要项6、查询排序7、过滤查询8、完全匹配查询9、高亮查询

9.1、默认高亮显示9.2、自定义高亮显示 10、聚合查询

10.1、根据字段分组查询10.2、聚合求平局值 11、分页查询12、修改文档

12.1、全量修改12.2、局部修改 13、删除文档14、创建映射 一、关于索引的请求 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": [ "" ], "post_tags": [ "" ] } } }}

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 //允许索引 }, }}

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。