elasticsearch的学习(一):使用postman实现增删改查

news2024/9/22 17:34:33

简介:

elasticsearch的基本的概念和通过postman来实现增删改查

elasticsearch

一个分布式的,restful风格的搜索和数据分析引擎,可以近乎实时的存储,检索数据,具有高扩展性,可以扩展到上百台服务器,处理bp级数据。
elasticsearch和kibana,beats,logstash一起组成elastic static,能够安全可靠的获取任何来源,任何格式的数据,然后实时的对数据进行搜索,分析,可视化。

相关概念

restful风格:特定互联网软件的架构原则,rest是资源状态转换。

uri是统一资源路径,是资源识别符,url是uri的子集,多了一个定位功能。
restful是要请求遵从统一的接口原则,同一个资源使用相同的接口进行访问,使用不同的请求方式对资源的操作
请求方式有:post提交,get查询,put更新,delete删除。不过处于安全的考虑,现在一般只使用get和post请求了。

json:JavaScript object notation的缩写,特殊标记的JavaScript对象,elasticsearch发送请求和返回的响应是json格式的。
json的格式:

#可嵌套
var obj = {"name":"christ","age":27,"info":{"hobby1":"sing","hobby2":"jump"}}
#数组
var obj2 = [obj]

json字符串:网络中传递的字符串的格式符合json格式。

下载安装

官网下载:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-8-0
点击bin目录下的elasticsearch.bat启动
在这里插入图片描述
会占用两个端口,9300是对内的,9200是对外的。
浏览器访问:http://localhost:9200/,显示了如下内容,表示安装启动成功
在这里插入图片描述

数据格式

elasticsearch是面向文档型的数据库,一条数据就是一个文档
使用elasticsearch和mysql对比:

elasticsearchmysql
索引数据库
类型
文档
字段

类型在版本7以上已经没有使用了。

索引的操作

创建索引

使用postman访问elasticsearch。
发送put请求:http://localhost:9200/索引名
在这里插入图片描述

查询索引

get请求方式查询全部索引:http://localhost:9200/_cat/indices?v
在这里插入图片描述
get请求方式查询一个索引的具体信息:http://localhost:9200/索引名
在这里插入图片描述

删除索引

delete请求方式删除一个索引:http://localhost:9200/索引名
在这里插入图片描述

文档的操作

创建文档

使用post方式请求:http://localhost:9200/索引名/_doc/自定义id
注意:如果没有自定义id,则要使用post方式请求。
在这里插入图片描述

查询数据

查询一条数据

get请求:http://localhost:9200/索引/_doc/数据id
在这里插入图片描述

查询所有数据

get请求http://localhost:9200/索引/_search
注意:postman的body中不能有数据
在这里插入图片描述

条件查询

发送get请求,http://localhost:9200/索引/_search,在请求body中写条件
条件:

{
    "query":{
        "match":{
        条件
        }
    }
}

在这里插入图片描述
如果请求body是:

{
    "query":{
        "match_all":{
        }
    }
}

则查询全部数据。
在这里插入图片描述

分页查询

请求body中:

{
    "query":{
        "match_all":{
        }
    },
    "from":0,
    "size":1
}

解析:from是第几页,size是一页显示多少数据
在这里插入图片描述

只查询所需字段

在body中加上"_source":[所需字段]

{
    "query":{
        "match_all":{
        }  
    },
    "from":0,
    "size":1,
    "_source":["name"]
}

在这里插入图片描述

查询的数据排序

在body中加上"sort",指定根据什么字段,使用order来决定是升序还是降序

{
    "query":{
        "match_all":{
        }  
    },
    "from":0,
    "size":3,
    "_source":["name"],
    "sort":{
        "age":{
            "order":"asc"
        }
    }
    }

在这里插入图片描述

多条件查询

should表示符合其中一个条件,must表示同时满足所有条件。

{
    "query":{
        "bool":{
            "should":[
                {
                    "match":{
                        "name":"jack"
                    }
                },
                {
                    "match":{
                        "name":"jhon"
                    }
                }
            ]
        }
    }      
    }
全文检索

保存文字时会拆分文字保存到倒排索引中,即使是查询条件的一部分也可以查询到,如果匹配条件是“冲上去”,那么只包含一个“上”或者“去”的内容也会匹配到,如果要匹配条件不拆分,就得是完全匹配

{
    "query":{
        "match":{
            "name":"冲"
        }
    }
}

在这里插入图片描述

完全匹配
{
    "query":{
        "match_phrase":{
            匹配条件
        }
    }
}
显示高亮
{
    "query":{
        "match":{
            "name":"冲"
        }
    },
    "highlight":{
        "fields":{
            "name":{}
        }
    }
}

在这里插入图片描述

聚合查询

类似于mysql中的函数,aggs表示聚合操作,“age_test”聚合结果的名字,terms表示分组,age就是分组的字段。

{
    "aggs":{
        "age_test":{
            "terms":{
                "field":"age"
            }
        }
    }
}

在这里插入图片描述
如果只想看统计的数据

{
    "aggs":{
        "age_test":{
            "terms":{
                "field":"age"
            }
        }
    },
    "size":0
}

查询平均值

{
    "aggs":{
        "age_test":{
            "avg":{
                "field":"age"
            }
        }
    },
    "size":0
}

修改数据

修改分为全量修改和局部修改

全量修改

发送put请求,http://localhost:9200/索引/_doc/id
在这里插入图片描述

局部修改

发送post请求:http://localhost:9200/索引/_update/id
修改内容要放到doc中。
在这里插入图片描述

删除数据

发送delete请求:http://localhost:9200/索引/_doc/id
在这里插入图片描述

映射

elasticsearch中的映射就类似于mysql中的表的各种信息,如字段的长度等。
put请求创建索引:http://localhost:9200/student
put请求添加映射:http://localhost:9200/student/_mapping

{
"properties":{
"name":{
"type":"text",
"index":true
}
"age":{
"type":"keyword",
"index":true
},
"sno":{
"type":"keyword",
"index":false
}
}
}

test表示文本,是可以分词的,即查询条件只要是其中的一个分词也可以匹配。
index true表示可以索引查询的,false表示不可以索引查询
keyword表示完整匹配,不能分词,即查询条件必须完全匹配才可以

可以使用get请求:http://localhost:9200/student/_mapping
查看索引的映射

在查询的时候,sno由于不是index,所以不能根据这个查询
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1976905.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用.NET NativeAOT模式开发hyper-v平台uefi上windbg调试引擎心得

引用 这篇文章的目的是介绍一款实验性的Uefi项目基于.NET NativeAOT模式实现的运行在Windows Hyper-V虚拟机上的windbg调试引擎开发心得 文章目录 引用简介NativeAOT模式动态接口的多态继承绑定实现方式分析NativeAOT模式运行时栈回溯实现方式分析模拟vcruntime实现的c异常捕获…

江科大/江协科技 STM32学习笔记P17

文章目录 一、TIM输入捕获输入捕获与输出比较的关系频率测量测频法测周法 输入捕获的电路异或门的执行逻辑 输入捕获通道主从触发模式输入捕获基本结构PWMI基本结构输入捕获模式测频率main.c 输入捕获模式测占空比main.c 一、TIM输入捕获 输入捕获与输出比较的关系 在输出比较中…

C语言第13篇

1.下面程序是计算n个数的平均值,请填空.______ #include<stdio.h> void main( ) { int i,n; float x,avg0.0; scanf("%d",&n); for(i0;i<n;i) { scanf("%f",&x); avgavg______; } avg________; printf("avg%f\n",avg); } A) …

[Git][分支管理][上]详细讲解

目录 1.理解分支2.创建分支3.切换分支4.合并分支5.删除分支 1.理解分支 感性理解&#xff1a;分支可以理解为平行宇宙&#xff0c;但是在用户需要的时候&#xff0c;可以将两个平行宇宙合并&#xff0c;此时两个平行宇宙的效果将会"叠加"理性理解&#xff1a;每次提…

树、二叉树、森林的转换

一、树和二叉树的转换 1、 2、 二、森林二叉树的转换 1、 2、

springboot医嘱管理系统-计算机毕业设计源码16053

摘 要 随着医疗信息化水平的不断提升&#xff0c;医嘱管理作为医院日常运营中不可或缺的一环&#xff0c;其重要性日益凸显。传统的医嘱管理方式往往存在效率低下、易出错等问题&#xff0c;已无法满足现代医疗服务的快速发展需求。因此&#xff0c;基于Spring Boot框架开发的…

MySQL-InnoDB引擎

目录 逻辑存储结构 架构 概述 内存结构 Buffer Pool&#xff08;缓冲池&#xff09; Change Buffer&#xff08;更改缓冲区&#xff09; Adaptive Hash Index&#xff08;自适应hash索引&#xff09; Log Buffer&#xff08;日志缓冲区&#xff09; 磁盘结构 System T…

基于CUDA12.1+CUDNN8.9+PYTORCH2.3.1,实现自定义数据集训练

目录 0 结果预览 1 核心点 2 参考链接 0 结果预览 1 核心点 yolo命令行CL需要将虚拟环境的yolo程序加入系统路径。 遇到conda install 失效问题&#xff0c;重建新的虚拟环境&#xff0c;再进行安装。 whl可以下载好后再安装。 pip install F:\tool\ai\torch-2.3.1cu…

使用VM安装K8S

VM 部署K8S 前言 本次使用VM搭建k8s&#xff0c;由于搭建流程复杂&#xff0c;在此记录。 需提前安装好VM&#xff08;可参考&#xff1a;VM安装&#xff09;&#xff0c;起两台虚拟机(模拟master和worker)&#xff0c;且VM里已安装好Docker&#xff08;可参考&#xff1a;D…

GO语言 4 收集器

劳苦功高的数组 声明数组并访问其元素 以下数组不多不少正好包含 8 个元素 var planets [8]string同一个数组中的每个元素都具有相同的类型&#xff0c;比如以上代码就是由 8 个字符串组成&#xff0c;简称字符串数组。 数组的长度可以通过内置的 len 函数确定。在声明数组…

03。仓颉程序结构

1&#xff0c;什么是 仓颉的“源代码”、“源文件”&#xff1f; ~通常以 “ .cj ” 为后缀的文本文件里面包含的仓颉代码&#xff0c;我们称为仓颉源代码、源文件。 / / test.txt --------------- test.cj 2&#xff0c;什么是 “ 作用域” &#xff1f;“嵌套作…

C/C++关键字大全

目录 一、const 二、static 三、#define 和 typedef 四、#define 和 inline 五、#define 和 const 六、new 和 malloc 七、const 和 constexpr 八、volatile 九、extern 十、前置 和后置 十一、atomic 十二、struct 和 class 一、const 1、const 关键字可用于定义…

在vscode中远程连接linux进行开发

目录 引言 配置过程 1.本机安装OpenSSH 2.本机生成RSA公钥和私钥 3.将rsa公钥添加到远程linux的authorized_keys文件中 4.vscode安装Remote - SSH插件 5.在vscode中ssh连接服务器 6.在本地vscode操作远程linux文件进行开发 7.在vscode上给远程linux机器需安装插件 常…

路径规划——贪婪最佳优先搜索

路径规划——贪婪最佳优先搜索 学习A算法前先学习一下贪婪最佳优先搜索算法&#xff0c;在学习过程中在网上找了一些博客、文章还有视频来看以深入理解此算法&#xff0c;但是实际情况却是非常令人恼怒。有些文章标题是贪婪最佳优先搜索&#xff0c;内容却是其他的算法&#x…

【密码学】椭圆曲线密码体制(ECC)

椭圆曲线密码体制&#xff08;Elliptic Curve Cryptography, ECC&#xff09;是一种基于椭圆曲线数学特性的公钥密码系统。在介绍椭圆曲线之前&#xff0c;我们先来了解一下椭圆曲线的基本概念。 一、椭圆曲线是什么&#xff1f; &#xff08;1&#xff09;椭圆曲线的数学定义…

PolSARPro软件安装处理TerraSAR数据(CSDN_20240804)

1. 打开polSARPro软件&#xff0c;点击Enter 2. 点击OK 3. 点击左侧第一个图像&#xff0c;进入PolSARPro Bio。 4. 点击Enter. 5. 点击Environment&#xff0c;选择Single Data Set 6. 选择工作路径 7. 点击No 8. Import -> Spaceborne Sensors ->TerraSAR-X->Quad-P…

C++的vector类

目录 简介 特点 接口 构造函数 迭代器函数 Capacity系列 element access系列 modifiers系列 定义在全局的重载函数 find 总结 简介 vector 是 C 标准模板库&#xff08;Standard Template Library&#xff0c;简称 STL&#xff09;中的一个模板类&#xff0c;用于表…

【iOS】——GCD总结

同步和异步的区别 同步执行等待操作完成&#xff0c;而异步执行允许程序在操作完成前继续运行&#xff0c;提高了效率和响应性。这里的关键就是上一个操作需不需要等待当前操作的执行&#xff0c;如果需要就是同步&#xff0c;如果不需要就是异步。 异步有开启新线程的能力但…

如何构建AI产品:OpenAI与前Shopify产品负责人Miqdad Jaffer的经验分享

一、引言 构建AI产品是一项复杂且充满挑战的任务&#xff0c;尤其是当涉及到面向消费者的解决方案时。在最近的一期播客节目中&#xff0c;OpenAI 和前Shopify产品负责人 Miqdad Jaffer 分享了他在构建AI产品的经验和策略。下面我们将探讨构建AI产品的最佳实践&#xff0c;以及…

行为型设计模式1:状态/策略/命令

行为型设计模式&#xff1a;状态/策略/命令 (qq.com)