热门课程

免费试听

上课方式

开班时间

当前位置: 首页 -   文章 -   新闻动态 -   正文

ES7 操作文档

知了堂姐
2024-07-09 11:12:24
0

基于restful风格的基本ES索引增删改查操作

  1. 一种软件架构风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更筒洁,更有层次,更易于实现缓存等机制。

基本Rest命令说明

索引的基本操作

运行es,kibana、es-head

创建一个索引

PUT /索引名/~类型名~/文档id{    请求体}

完成了自动増加了索引!数据也成功的添加了

那么name这个字段用不用指定类型呢。毕亮我们关系型数据库是需要指定类型的啊 默认类型:

  • 字符串类型:text、keyword
  • 数值类型:ling,integer,short,byte,double,float,half float,scaled float
  • 日期类型:date
  • te布尔值类型:boolean
  • 二进制类型:binary
  • 等等

指定字段的类型

PUT /test2{  "mappings": {    "properties": {     "name":{       "type": "text"     },     "age":{       "type": "long"     },     "birthday":{       "type": "date"     }    }  }}

获取索引信息

GET /索引名/~类型名~/文档id

如果自己的文档字段没有指定,那么es就会给我们默认配置字段类型

展:通过命令 elasticsearch索引情況!通过get_cat/可以获得es的当前的很多信息!

修改索引状态

POST /索引名称/类型名称/文档名称/_update

PUT /test3/_doc/1{  "name":"joker",  "age":18,  "sex":"男"}POST /test3/_doc/1/_update{  "doc":{    "name":"joker_dj"  }}

 

删除索引

通过 DELETE命令实现州除、根据你的请求来判断是删除索引还是删除文档记录!

DELETE /索引名称/类型名称/文档名称

删除指定文档

 

DELETE 索引名称/类型名称/文档id{    方法体}例:DELETE test3/_doc/1{  "name":"joker_dj"}

文档的基本操作

基本操作

创建索引

PUT /joker/user/1{  "name":"joker_dj",  "age":18,  "desc":"java小萌新",  "tags":["技术宅","直男"]}PUT /joker/user/1{  "name":"joker_dj",  "age":18,  "desc":"java小萌新",  "tags":["技术宅","直男"]}PUT /joker/user/3{  "name":"李四",  "age":5,  "desc":"合伙人",  "tags":["坏人"]}

获取文档

GET /索引名称/类型名称/文档id

修改文档

重新put一边就是修改 (不推荐) version就是数据被改动的次数

POST _update,推荐使用这种更新方式

POST /索引名称/类型名称/文档id/_update{  "doc":{    "fieds":"value"  }}POST /joker/user/3/_update{  "doc":{    "name":"张三的哥哥李四"  }}

文档搜索

简单的搜索

GET /索引名称/[类型名称]/[文档id]

高级搜索 条件查询

GET /索引名称/[类型名称]/_search?q=fieds:value

复杂操作搜索 select(排序,分页,高亮,模糊査询,精准查询!)

根据_score分数进行排序 查看谁最匹配

只要文档中包含value的就会被查出来 前提是被分词器捕获GET /索引名称/类型名称/_search{  "query": {    "match": {      "fileds": "value"    }   }}GET /joker/user/_search{  "query": {    "match": {      "name": "张三"    }   }}

过滤字段

GET  /索引名称/类型名称/_search{  "query": {    "match": {      "fileds": "value"    }  },  "_source": ["fileds","fileds"]}GET /joker/user/_search{  "query": {    "match": {      "name": "张三"    }  },  "_source": ["desc","name"]}

排序

GET  /索引名称/类型名称/_search{  "query": {    "match": {      "fileds": "value"    }  },  "_source": ["fileds","fileds"],  "sort": [    {      "fileds": {        "order": "desc"      }    }  ]}例:GET /joker/user/_search{  "query": {    "match": {      "name": "张三"    }  },  "_source": ["desc","name","age"],  "sort": [    {      "age": {        "order": "desc"      }    }  ]}

 

分页查询

GET /joker/user/_search{  "query": {    "match": {      "name": "张三"    }  },  "from": 0, # 起始值  page  "size": 20 # 查询大小 pageSize}

 

数据下标还是从0开始的,和学的所有数据结构是一样的! /seach/{current}/{pageSize}

布尔查询

多条件查询 must 相当于 and

GET /joker/user/_search{  "query": {    "bool": {     "must ": [       {         "match": {           "name": "张三"         }       },       {         "match": {           "age": 5         }       }     ]    }  }}

 

should相当于 or

GET /joker/user/_search{  "query": {    "bool": {     "should": [       {         "match": {           "name": "张三"         }       },       {         "match": {           "age": 5         }       }     ]    }  }}

 

 

not操作

GET /joker/user/_search{  "query": {    "bool": {     "must_not": [       {         "match": {           "name": "张三"         }       },       {         "match": {           "age": 5         }       }     ]    }  }}

 

 

过滤器 filter

GET /joker/user/_search{  "query": {    "bool": {     "must_not": [       {         "match": {           "name": "张三"         }       }     ],     "filter": {       "range": {         "age": {           "gt": 1,          }       }     }    }  }}

筛选年龄大于1

 

  • gt 大于
  • lt 小于
  • gte 大于等于
  • lte 小于等于

匹配多个条件

多个条件之间使用空格隔开 只满足其中一个即可查出

通过分值基本判断

 

精确查询

term查询是直接通过倒排索引指定的词条进程精确的查找的! 关于分词:

  • term :直接查询精确的
  • match:会使用分词器解析!(先分析文档,然后在通过分析的文档进行查询!)

两个类型 text 、 keyword keyword不会被分词器解析 text 会被分词器解析

多个值匹配的精确查询

 

 

高亮查询

GET /joker/user/_search{  "query": {    "match": {      "name":"张三"    }  },  "highlight": {    "fields": {      "name":{      }    }  }}

 

自定义高亮标签

 

GET /joker/user/_search{  "query": {    "match": {      "name":"张三"    }  },  "highlight": {    "pre_tags":"

", "post_tags":"

", "fields": { "name":{ } } }}


 

大家都在看

前端培训班出来能找到工作吗?培训机构得选择非常重...

2024-07-09 浏览次数:0

技术支持适合女生吗:女生也能撑起半边天

2024-07-09 浏览次数:0

java难学吗?自学的java是不是特别难?

2024-07-09 浏览次数:0

以目标为驱动增强在校大学生动手能力

2024-07-09 浏览次数:0

Java常见问题,要想成为一名Java工程师需要...

2024-07-09 浏览次数:0

成都前端培训需要多少钱?需要培训多长的时间?

2024-07-09 浏览次数:0
最新资讯
ES7 操作文档 基于restful风格的基本ES索引增删改查操作 一种软件架构风格,而不是标准,只是提...
ES7 操作文档 基于restful风格的基本ES索引增删改查操作 一种软件架构风格,而不是标准,只是提供了...