【Elasticsearch】结合Postman/ApiPost 快速入门

news2025/2/1 16:02:18

        相比于MySQL那种关系型数据库,是采用正排索引,也就是根据主键去找其对应的行数据。而Elasticsearch这个NoSQL,是采用倒排索引,根据输入的某值返回其它整行的数据。而Elaticsearch是采用RESTful风格的数据库访问,以下就是测试案例。

Put

        用来创建索引,只需要在路径后加上想要的索引名称即可以添加索引。如user就是索引名称。这里需要注意的是,如果这个方法发送第二次就会出现错误。

        从第二次发送的这个报错信息可以看出,是因为这索引名称已经存在了所以就会出现错误,这就是幂等性问题。幂等性:同一个操作的重复执行都会返回同一个结果。所以说这个Put方法对于同一个索引名称只能够使用一次操作。

Get

查询单个索引

查询全部索引

Delete

POST

        这里需要注意的是路径上的"_doc"是必定的关键字。这个Post方法就是非幂等性的,每次插入的时候返回的值却是不同的。具体以下面两张图返回的_id可以看出,返回的id不同,所以就不属于幂等性。这里我所给的JSON数据如下。

{

    "name": "zhangsan",

    "age": 18,

    "sex": "男"

}

        当然,我测试过能够将id改为自己想给的值,还是可以成功的。

从这里开始要注意以上的操作当这个索引中有三个值:

1、{"name": "zhangsan",age: 18}

2、{"name": "zhangsan",age: 18}

3、{"name": "wangwu",age: 18}

主键查询

全查询

修改数据

        采用Put方法去更新的话表示全量数据更新。也就是说把这_id = 1的这行数据全部替换成我们想要的数据。但其实我们经常只是局部数据更新。并不需要全部进行修改。

        查询一下更新后的数据。http://localhost/user/_doc/1。可以看到"zhangsan"变为"lisi"了

        那么就需要采用Post方法去实现局部数据更新。需要注意的是路径上已经不是"_doc"了,而是需要改为"_update"。采用前者表示新增,采用后者表示更新。

  查询一下更新后的数据。http://localhost/user/_doc/1。可以看到"lisi"变为"wangwu"了

条件查询

单条件查询

路径

        需要在方法路径的"_search"后加上"?q=name:zhangsan"。其中"q"表示query,而"name"表示查询条件,"zhangsan"表示查询内容。

请求体

        在请求体放入以下JSON格式。其中match中的就是查询条件。

{

    "query": {

        "match": {

            "name": "zhangsan"

        }

    }

}

多条件查询

全匹配

        请求头中的JSON数据如下,其中"must"表示的就是全匹配,即都需要满足"match"中的条件。条件为:name = "zhangsan" AND age = 18

{

    "query": {

        "bool": {

            "must": [

                {

                    "match": {

                        "name": "wangwu"

                    }

                },

                {

                    "match": {

                        "age": 18

                    }

                }

            ]

        }

    }

}

部分匹配

        而改为部分匹配,则需要将"must"改为"should"。条件为:name = "wangwu" OR age = 18

{

    "query": {

        "bool": {

            "should": [

                {

                    "match": {

                        "name": "wangwu"

                    }

                },

                {

                    "match": {

                        "age": 18

                    }

                }

            ]

        }

    }

}

分页查询

        也是采用Get方法,在请求体中加入以下JSON数据。其中"from"表示当前页,"size"表示每页条数。这其实在Java中的MyBatis框架中也有,只不过不叫"from",而是叫"page"。

{

    "query": {

        "match_all": {}

    },

    "from": 0,

    "size": 2

}

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

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

相关文章

Docker 概述与命令操作

一、Docker 概述 1、Docker的概念 • Docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源 • Docker是在Linux容器里运行应用的开源工具,是一种轻量级的“虚拟机” • Docker 的容器技术可以在一台主机上轻松为任何应用创建一…

IDEA 集成Maven

一. 下载IDEA编辑器 下载地址:Download IntelliJ IDEA – The Leading Java and Kotlin IDE 选中免费开源的社区版本 创建桌面图标和添加安装路径到系统变量,其他的默认安装即可。 二. 配置Maven环境 分为局部配置和全局配置 1. 局部配置maven环境 …

编译tolua——4、更新luaJit

目录 1、编译工具和环境说明 2、基础编译tolua 3、以pbc为例子,添加第三方库 4、更新luaJit 大家好,我是阿赵。 用tolua做项目的朋友们,在这两年肯定会遇到过一个问题,就是现在的安卓应用市场比如谷歌市场,要求上传的…

Linux知识点 -- 进程控制(一)

Linux知识点 – 进程控制(一) 文章目录 Linux知识点 -- 进程控制(一)一、进程创建1.fork函数2.写时拷贝2.fork常规用法3.fork调用失败的原因 二、进程终止1.进程终止时操作系统的行动2.进程终止的常见方式3.用代码终止一个进程 三…

yolo-v3看不懂?手撕代码逐行讲解,附带网盘完整代码实现

目录 一:读取数据 二:初始化模型 Route 层用于将来自不同层的特征图进行连接或拼接。 Shortcut 层用于执行残差连接,将前一层的特征图与当前层的特征图相加。 最重要的一层 yolo层: 三:初始化完所有有网络层后&…

从零开始,5分钟轻松实现Spring Boot与RabbitMQ的无缝集成

🌏 环境 docker v4.16.2springboot 2.7.0RabbitMQ 3.9.1 rabbitmq_delayed_message_exchange 3.9.0 ps:代码地址 gitee 🪜 服务架构 使用maven多模块,将生产者、消费者分别以springboot项目启动,两者通过RabbitMQ…

【Spark基础编程】 第8章 Spark MLlib

系列文章目录 文章目录 系列文章目录前言【 第8章 Spark MLlib 】8.1 Spark MLlib简介8.1.1 什么是机器学习8.1.2 基于大数据的机器学习8.1.3 Spark 机器学习库MLLib 8.2 机器学习工作流8.2.1 机器学习流水线概念8.2.2 构建一个机器学习流水线 8.3 特征抽取、转化和选择8.4 分类…

【DBA日常工作职责---读书笔记】

👈【上一篇】 💖The Begin💖点点关注,收藏不迷路💖 【下一篇】👉 🔻DBA 的工作职责是什么?每天 DBA 应该做哪些工作?稳定环境中的 DBA 该如何成长与 优化&#xff1…

Jmeter插件PerfMon Metrics Collector安装使用及报错解决

Jmeter作为一个轻量级的性能测试工具,开源、小巧、灵活的特性使其越来越受到测试人员喜爱。在实际的项目中,特别是跨地区项目,排除合作方指定要求使用Loadrunner作为性能测试工具外,Jmeter会是首选。 本篇文章,就着重…

华为云DevCloud平台部署bootdo博客论坛实战【开发者专属集市】

华为云DevCloud平台部署bootdo博客论坛实战【开发者专属集市】 一、bootdo-blog开源博客介绍二、本次实践所用工具及平台三、购买华为RDS数据库1.购买RDS数据库2.查看RDS数据库状态 四、创建项目1.登录华为云台DevCloud平台2.新建项目3.查看新建项目4.创建代码仓库 五、配置数据…

老话新谈之缓存一致性

前言 缓存一致性常见的更新策略也比较多,如先更新数据库再更新缓存,先删缓存再更新数据库等等,我在理解的时候有些混乱,所以这个文章提供了一些理解上的技巧去理解缓存一致性。 为什么会有缓存一致性的问题 缓存与数据库是两套…

网络安全从业人员2023年后真的会被AI取代吗?

随着ChatGPT的火爆,很多人开始担心网络安全从业人员会被AI取代。如果说网络安全挖洞的话,AI可能真的能取代。但是网络安全不仅仅只是挖洞,所以AI只是能缓解网络安全人员不足的情况,但是是不会取代人类的作用的。 就拿最近很火的C…

【STL】priority_queue的使用及模拟实现

目录 前言 priority_queue的使用 功能解析 基本接口 写点题目 模拟实现 结构解析 插入删除 调整函数结合仿函数 仿函数介绍 结合使用 其他功能 接口补齐 迭代器区间构造 前言 🍾打开 queue 头文件后,我们发现除了我们之前介绍过的普通队列…

用maven安装JUnit 5并运行单元测试

一&#xff1a;首先讲如何安装 JUnit 5 JUnit Platform JUnit Jupiter JUnit Vintage 如果不需要执行基于JUnit 3 和JUnit 4 的用例&#xff0c;那么JUnit Vintage就不需要安装。 1&#xff09;在pom文件dependencies的小节内增加如下依赖&#xff1a; <dependency>&l…

Docker安装ClickHouse22.6.9.11并与SpringBoot、MyBatisPlus集成

背景 上一篇文章CentOS6.10上离线安装ClickHouse19.9.5.36并修改默认数据存储目录记录了在旧版的操作系统上直接安装低版本 ClickHouse &#xff08;脱胎于俄罗斯头号搜索引擎的技术&#xff09;的过程&#xff0c;开启远程访问并配置密码&#xff1b; 其实通过 Docker 运行 …

一文读懂性能测试

01、常见概念 吞吐量&#xff08;TPS, QPS&#xff09; 简单来说就是每秒钟完成的事务数或者查询数。通常吞吐量大表明系统单位时间能处理的请求数越多&#xff0c;所以通常希望TPS越高越好 响应时间 即从请求发出去到收到系统返回的时间。响应时间一般不取平均值&#xff0…

二叉树及其链式结构

目录 一&#xff1a;树概念及结构 1.树的概念 2.树的相关概念 3.树的表示 二&#xff1a;二叉树的概念及结构 1.概念 2.特殊的二叉树 <1>. 满二叉树&#xff1a; <2>. 完全二叉树&#xff1a; 3.二叉树的性质 4.二叉树的存储结构 <1>.顺序结构 <…

win11 无法登录微软账户 终极解决方案

背景&#xff1a;win11突然无法登录微软账户&#xff0c;office无法激活&#xff0c;Edge里的微软账户也无法登录&#xff0c;反馈中心也无法打开等&#xff0c;有网络&#xff0c;浏览器可以访问微软并进行登录。 试过网上的网络配置&#xff08;SSL及TLS协议勾选&#xff09…

数学模型:Python实现线性规划

文章摘要&#xff1a;线性规划的Python实现。 参考书籍&#xff1a;数学建模算法与应用(第3版)司守奎 孙玺菁。 PS&#xff1a;只涉及了具体实现并不涉及底层理论。学习底层理论以及底层理论实现&#xff1a;可以参考1.最优化模型与算法——基于Python实现 渐令 粱锡军2.算法导…

vim复制,剪切觉得麻烦?今天就来教会你:vim复制和剪切教程

上次讲了vim移动光标的快捷键&#xff0c;今天我们来了解一下vim的复制多行的功能。 快速复制多行 第一步&#xff1a;将光标移动到复制的文本开始的地方&#xff0c;按下v进入可视模式&#xff0c;这里的v的意思就是visual的缩写&#xff0c;就是可视的意思。 第二步&#x…