ES命令增删改查

ES命令增删改查

Rest风格说明

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

基本Rest命令说明:

methodurl地址描述
PUT(创建,修改)localhost:9200/索引名称/类型名称/文档id创建文档(指定文档id)
POST(创建)localhost:9200/索引名称/类型名称创建文档(随机文档id)
POST(修改)localhost:9200/索引名称/类型名称/文档id/_update修改文档
DELETE(删除)localhost:9200/索引名称/类型名称/文档id删除文档
GET(查询)localhost:9200/索引名称/类型名称/文档id查询文档通过文档ID
POST(查询)localhost:9200/索引名称/类型名称/文档id/_search查询所有数据

练习

1、创建一个索引,添加,在这里我创建了两个

在head里边可以更好的查看,这里我开了两个可视化软件

 在如图所示的地方也可以查看

2、字段数据类型

字符串类型

  • text、keyword

    • text:支持分词,全文检索,支持模糊、精确查询,不支持聚合,排序操作;text类型的最大支持的字符长度无限制,适合大字段存储;

    • keyword:不进行分词,直接索引、支持模糊、支持精确匹配,支持聚合、排序操作。keyword类型的最大支持的长度为——32766个UTF-8类型的字符,可以通过设置ignore_above指定自持字符长度,超过给定长度后的数据将不被索引,无法通过term精确匹配检索返回结果。

  • 数值型

    • long、Integer、short、byte、double、float、half float、scaled float

  • 日期类型

    • date

  • te布尔类型

    • boolean

  • 二进制类型

    • binary

3、指定字段的类型(使用PUT)

创建规则 类似于建库(建立索引和字段对应类型),也可看做规则的建立

在Kibana也可以查看,使用GET命令

 

4、获取默认信息

_doc 默认类型(default type),type 在未来的版本中会逐渐弃用,因此产生一个默认类型进行代替

查看一下test3  GET test3

5、修改 有两种方案

①旧的(使用put覆盖原来的值)

  • 版本+1(_version)

  • 但是如果漏掉某个字段没有写,那么更新是没有写的字段 ,会消失

但是因为如果漏掉一个,就是丢失字段

由于我们没有给年龄和生日,查询的时候就发现丢失了两条数据,我们也可以去head里边看一看

id为一的这一条是修改过的,发现他原本的年龄和生日没有了 

②新的(使用post的update)记得加上"doc"要不然报400

 由图可见,这个方法只修改需要修改的字段,不会丢失字段

6、删除 直接delete加索引就可以

//获取
GET /test1
# 删除
DELETE /test1

查询有两条数据

 执行删除操作

 这里已经没有test1这个索引了

 还有很多复杂的查询语句,就简单在演示几个,感兴趣的可以自己搜索一下

7、查询(简单条件)

GET /test3/_doc/_search?q=name:小小妖

由于我里边只有一个名字里边含有小小妖的,所以就直接查询出来一条,如果有两个及以上含有的,怎么排序呢?

 如果含有两个及以上的名字里边有的,它里边有一个score,会根据最接近的依次排序

添加成功之后我们再查询依次

 

8、复杂查询  (我就不在测试了,感兴趣的可以自己搜索一下es的复杂查询,等有时间我再补上)

①查询匹配

  • match:匹配(会使用分词器解析(先分析文档,然后进行查询))

  • _source:过滤字段

  • sort:排序

  • formsize 分页

②多条件查询(bool)

  • must 相当于 and

  • should 相当于 or

  • must_not 相当于 not (... and ...)

  • filter 过滤

③匹配数组

  • 貌似不能与其它字段一起使用

  • 可以多关键字查(空格隔开)— 匹配字段也是符合的

  • match 会使用分词器解析(先分析文档,然后进行查询)

④精确查询

  • term 直接通过 倒排索引 指定词条查询

  • 适合查询 number、date、keyword ,不适合text

⑤text和keyword

  • text: 支持分词,全文检索、支持模糊、精确查询,不支持聚合,排序操作; text类型的最大支持的字符长度无限制,适合大字段存储;

  • keyword: 不进行分词,直接索引、支持模糊、支持精确匹配,支持聚合、排序操作。 keyword类型的最大支持的长度为——32766个UTF-8类型的字符,可以通过设置ignore_above指定自持字符长度,超过给定长度后的数据将不被索引,无法通过term精确匹配检索返回结果。


版权声明:本文为m0_50052896原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。