ES7 操作文档

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

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

基本Rest命令说明

methodurl地址描述
PUTlocalhost:9200/索引名称/类型名称/文档id创建文档(指定文档d)
POSTlocalhost:9200/索引名称/类型名称创建文档(随机文档id)
POSTlocahost:9200/索引名称/类型名称/文档id/_ update修改文档
DELETElocalhost::9200/索引名称/类型名称/文档id删除文档
GETlocalhost:9200/索引名称/类型名称文档id查询文档通过文档d
POSTlocalhost::9200/索引名称/类型名称/_search查询所有数据

索引的基本操作

运行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":"<p class='key' style='color:red'>",    "post_tags":"</p>",    "fields": {      "name":{      }    }  }}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值