| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> elasticsearch 基础命令总结 -> 正文阅读 |
|
[大数据]elasticsearch 基础命令总结 |
查看elasticsearch 基本信息image-20210713003304666 创建索引及文档我要创建一个为用户的索引并且加入数据 image-20210712231859894 那么有人会可能多点了几次,发现控制台的version和result发生了变化如下 image-20210712232206719 如果说文档id为1并不存在,那么他就会去新建,并且版本号显示为1,返回结果为created ,如果它存在,那么就会去更新版本号,并且result状态会改变,那么我们用post可不可以呢? image-20210712232958498 看到post和普通一样都是对版本就行的增加,那么如果说我仅仅是想要去创建索引及文档,不想要去更新,我们可以使用下面这个 image-20210712233232551 要是不想向上面那样写,也可以这样写 image-20210712233611711 比如说明的是ops_type只有两种值create和index 如果说需要去查看我们修改过的文档,可以用下面的命令 image-20210712233944048 如果说仅仅是想看source内容,不想要其他内容,可以用下面的命令 image-20210712234440937 自动生成id 刚才是我为文档特意分配了id,这回增加我们的成本,如果说我们的文档id不存在就回去新建,如果存在就会去更新,这会增加我们机器的性能成本,所以我们可以不去手动分配id,而是让软件自己去创建id,但是这个时候不能够使用put,必须使用post,不如下面这个: image-20210712235119773 不过我建议用下面这种方法,能和上面那种方法返回一样的信息 image-20210712234317343 那么我如果只想要返回username,city两个字段,我们可以这样做: image-20210712235601313 上面是查询单个文档,那么如果我要查询多个文档呢?可以使用_mget image-20210713000513978 如果是想返回部分字段,那么加上_source,比如说我想返回文档1的姓名和年龄,文档文档2的姓名和城市 image-20210713000807115 这是不是看起来有点麻烦,那么可以简单这样写: image-20210713001147888 当然我并不建议这样做 修改文档 上面说了创建文档,和查询文档,那么如何修改文档?其实上面也看到用post可以修改文档,但是一般我们使用post来创建文档,因为加不加id都可以创建成功,我们一般使用put来修改文档,这个时候必须指定文档id,比方说我想要把文档id为2的city改成山东,那么可以这样 image-20210713001916506 这个时候已经修改完成了,那么可以用上面学过的get命令查看文档2的信息 image-20210713002106203 但是发现我使用put仅仅需要修改一个city,但是却需要把username,age,sex都写上,这就有点 麻烦,可以用下面这种方法来做部分修改,也就是想改哪个写那个 image-20210713002637748 接下来用get看看成功没有 image-20210713002739499 看到明显是成功的,那么如果我们不知道文档id的情况下,也要修改数据,怎么办呢?我们可以先把需要修改的数据查出来,然后再做修改,比如说这样, image-20210713104547907 看看修改成功没有 image-20210713104708421 看到上面都是英文字段,那么如果是中文字段是要这样写: 先导入测试数据 image-20210713105057877 接下来就认为我不知道当前字段的文档id,再来操作一下 image-20210713105436448 去看看修改成功没有 image-20210713105505329 可以看到是修改成功的。 上面用的到的是update_by_query,那么其实也可以用_update来做修改,也可以达到我们想要的目的,只不过这个时候我们需要文档id image-20210713110154413 看下修改结果 image-20210713110215678 其实也可以这样做,达到删除的目的
upsert 我们前边做更新的时候,需要用到文档id,如果说文档id存在则更新,如果说文档id不存在就会报错,而upsert则会使有点区别,如果说我们要修改的文档id存在,则会去做修改,如果不存在就会新建该文档,也就是插入一个新文档 比如下面这个:
head
有时候我们仅仅是想看看该文档是否存在,不想去查看该文档的内容,那么我们可以用这个
如果存在就会返回200,ok字样 image-20210713111754267 delete
如果不想要这个文档,那么也可以删除这个文档,但是比如知道该文档的id
那么有时候我们不知道文档id,该怎么删除呢?可以这样
使用_delete_by_query就可以把用户名为李四的文档都删除掉
我们直接delete+ 索引名就可以,比如说这样 image-20210713112032420 这样做的话,该索引及索引中的所有文档都会被删除掉 _bulk
下面我们展示一下批量增加文档 格式:
image-20210713112758710 但是却是要注意一下,就是增加的时候不要出现空格,不然会报错。 如果要是想查看文档,现在我们可以这样 image-20210713113712158 刚刚插入了4条数据进去,现在在value中显示的是4,那么该字段表示的是该索引中的所有文档的总数,当然也可以使用count 查询文档总数 image-20210713113823842 刚才我们用的是index 做的文档新增,那么接下来看看使用create来看看可不可以新增成功,先把刚才的user索引删除掉
image-20210713114239675 看到是成功的跟index创建的时候是一样,但是这里却是有个区别那就是 create如果存在我们创建的文档id已经存在则不会成功,如果说是不存在,create才会创建该文档,而index 则是如果文档id不存在则进行新建,如果文档存在版本号会+1 刚才看了新增和查看,那么试一下批量删除,需要把create改成delete即可,如我要删除索引为user,文档id为1的文档: image-20210713115011837 来看一下是否成功: image-20210713115243322 发现找不到该文档id,那就是确认是删除成功了。 再来看看如何更新文档 刚才我们做批量新增的时候,看到文档id为2,用户名为李四的城市是在郑州,那么我把它改成上海 image-20210713115736318 查看下修改是否成功: image-20210713115901837 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年4日历 | -2025/4/22 0:15:30- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |