Elasticsearch - HTTP

文章目录

    • 安装
    • 基本语法
      • 索引
        • 创建索引
        • 查看索引
        • 删除索引
      • 文档
        • 创建文档
        • 更新文档
        • 匹配查询
        • 多条件查询
        • 聚合查询
        • 映射

安装

https://www.elastic.co/downloads/past-releases/elasticsearch-7-17-0
下载完成启动bin/elasticsearch服务,可以在Postman调试各种请求。

基本语法

索引

创建索引
PUT: http://127.0.0.1:9200/shoppingResponse:
{"acknowledged": true,"shards_acknowledged": true,"index": "shopping"
}

多次创建同一个索引时,会报错,说明创建请求是幂等性的(同一个操作执行多次和执行一次效果相同,不会因为多次执行而产生不同的效果)。所以应该用PUT而非POSTPOST每次都会创建一条新的记录,对于同一个请求,并不会由于索引重复而报错。

查看索引

GET: http://127.0.0.1:9200/shopping
在这里插入图片描述
包含了每个索引的健康状况、状态、名称、唯一ID(UUID)、分片数(primary和replica)、包含的文档数、删除的文档数、以及存储大小所有主分片占用的物理磁盘空间总。

删除索引

DELETE: http://127.0.0.1:9200/shopping

文档

创建文档
POST: http://127.0.0.1:9200/shopping/_doc`或者`POST: http://127.0.0.1:9200/shopping/_createRequest body:
{"name": "xiaomi su7","type": 1,"price": 29.99
}Response:
{"_index": "shopping","_type": "_doc","_id": "bhajbY8BDgHLWJjh9Xp7","_version": 1,"result": "created","_shards": {"total": 2,"successful": 1,"failed": 0},"_seq_no": 1,"_primary_term": 1
}

如果觉得id不好记忆,可以指定id创建文档:POST/PUT: http://127.0.0.1:9200/shopping/_doc/1001,重复调用会更新文档,如果明确用_create,重复调用会有冲突。

更新文档
POST: http://127.0.0.1:9200/shopping/_update/1001Request body:
{"doc": {"compony": "xiaomi "}
}Response:
{"_index": "shopping","_type": "_doc","_id": "1001","_version": 9,"result": "updated","_shards": {"total": 2,"successful": 1,"failed": 0},"_seq_no": 10,"_primary_term": 1
}

如果加上doc就是增量更新,否则为全亮更新。

匹配查询
GET: http://127.0.0.1:9200/shopping/_searchRequest Body:
{"query": {"match_all": {}/**"match": {"compony": "xiaomi"}*/"from": 0,"size": 2,"_source": ["type", "price"],"sort": {"price": {"order": "desc"}}
}Response:
{"took": 8,"timed_out": false,"_shards": {"total": 1,"successful": 1,"skipped": 0,"failed": 0},"hits": {"total": {"value": 4,"relation": "eq"},"max_score": null,"hits": [{"_index": "shopping","_type": "_doc","_id": "1003","_score": null,"_source": {"price": 39.99,"type": 1},"sort": [39.99]},{"_index": "shopping","_type": "_doc","_id": "bhajbY8BDgHLWJjh9Xp7","_score": null,"_source": {"price": 29.99,"type": 1},"sort": [29.99]}]}
}
多条件查询
GET: http://127.0.0.1:9200/shopping/_searchRequest Body:
{"query": {"bool": {// 数组里的条件同时满足"must": [{"match": {"name": "xiaomi su7"}},{"match": {"type": 1}}],// 数组里的条件满足一个即可"should": [{"match": {"price": 39.99}}],// 对结果进行范围过滤"filter": {"range": {"price": {"gt": 30}}}}}
}Response:
{"took": 9,"timed_out": false,"_shards": {"total": 1,"successful": 1,"skipped": 0,"failed": 0},"hits": {"total": {"value": 1,"relation": "eq"},"max_score": 2.2391143,"hits": [{"_index": "shopping","_type": "_doc","_id": "1003","_score": 2.2391143,"_source": {"name": "xiaomi su7 pro","type": 1,"price": 39.99}}]}
}

match 是分词检索,doc在存储的时候是倒排索引,会把里面的字段按空格(实验结果)拆成一些词,每个词都会对应一条id的数据。默认查询时用的并不是全词匹配,比如:

{"query": {"match": {"name": "su7"}}
}

能匹配到name = "xiaomi su7" / "xiaomi su7 pro" 的数据。

聚合查询
GET: http://127.0.0.1:9200/shopping/_searchRequest Body:
{"aggs": {"price_group": {"terms": { // 分组"field": "price"}}},"size": 0
}Response:
{"took": 15,"timed_out": false,"_shards": {"total": 1,"successful": 1,"skipped": 0,"failed": 0},"hits": {"total": {"value": 4,"relation": "eq"},"max_score": null,"hits": []},"aggregations": {"price_group": {"doc_count_error_upper_bound": 0,"sum_other_doc_count": 0,"buckets": [{"key": 29.989999771118164,"doc_count": 2},{"key": 39.9900016784668,"doc_count": 1}]}}
}
映射

可以为某个索引设置一些映射的字段,包括字段是否能用分词查询(否则全亮匹配)、是否能用来查询。

PUT: http://127.0.0.1:9200/user/_mappingRequest Body:
{"properties": {"name": {"type": "text", // 可分词查询"index": true.  // 可作为查询字段   },"sex": {"type": "keyword", // 只能全亮匹配"index": true},"tel": {"type": "keyword","index": false     // 不可作为查询字段}}
}

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

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

相关文章

MySQL:什么样的字段适合加索引?什么样的字段不适合加索引

1 适合加索引的场景 (1)主键字段:用于唯一标识每个记录的字段,通常是数据库表中的一个自增或唯一标识字段。 (2)外键字段:用于连接两个表之间关系的字段,通常是一个表中的字段与另一个表中的主键字段关联。 (3)经常用于查询的字段:如果某个字段经常被用于查询条件…

新建jupyter notebook 出错

File “/home/map/huyong06/xdev/lib/python3.6/site-packages/notebook/utils.py”, line 36, in exists os.lstat(path) UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 28-30: ordinal not in range(128) [W 14:08:19.063 NotebookApp] Unhandl…

高稳定LED驱动IC防干扰数显驱动控制器热水器LED驱动芯片VK1650 SOP16/DIP16 原厂FAE支持

产品型号:VK1650 产品品牌:永嘉微电/VINKA 封装形式:SOP16/DIP16 工程服务,技术支持! 概述 VK1650是一种带键盘扫描电路接口的 LED 驱动控制专用芯片,内部集成有数据锁存器、LED 驱动、键盘扫描等电路。…

2024年职称评审流程大揭秘,顺利拿下职称

上半年时间不急,中旬太忙,没有时间,下半年干着急。评职称一定要趁早,不然卡住一个流程,今年就不需要评职称了。中级副高级职称评职称就像挤公交你不努力挤一把,就只能等下一趟下一趟。所以评职称一定要看准…

[Cocos Creator 3.5赛车游戏] 第4节 创建汽车节点

在实现汽车节点之前,我们要先熟悉一下少量的基本概念,这样才能让您更快的实现第一个汽车节点。 一、基本概念 1.什么是节点: 在Cocos中,场景是由一系列节点组成的,每个节点下面又可以有子节点,而每个节点都…

Axure RP 9 for Mac:强大的原型设计利器

Axure RP 9 for Mac是一款功能强大的原型设计工具,专为Mac用户打造。它支持高保真度的应用程序和网站原型设计,帮助用户快速创建高质量的产品原型。软件内置丰富的交互效果和动画设计选项,设计师可以通过简单的操作,为原型添加各种…

php获得淘宝商品评论 API

要获得淘宝商品评论的API,您可以使用淘宝开放平台的接口。以下是获取淘宝商品评论的一种方法: 注册成为淘宝开放平台的开发者。登录淘宝开放平台,创建应用,获取到App Key和App Secret。或者使用第三方App Key和App Secret生成签名…

Eclipse下WEB-INF/classes目录下没生成编译最新class文件

右击项目 >> Properties >>Deployment Assembly >>Source 把/src/main/java 的Deploy Path 改为 WEB-INF/classes

MYSQL之binlog详解优缺点

MYSQL之binlog详解 一、什么是binlog? binlog,即二进制日志,它记录了数据库上的所有改变,并以二进制的形式保存在磁盘中它可以用来查看数据库的变更历史、数据库增量备份和恢复、Mysql的复制(主从数据库的复制)二、binlog模式 …

大模型平台后端开发(xiaomi)

文章目录 算法题 算法题 1 三数之和 (注意去重的边界条件,过几天再刷几次) 2 长度最小的子数组 (代码随想录题目,滑动窗口) 3 用链表实现栈 package mainimport ("errors""fmt" )// Node 定义链表节点 type…

记录计全支付切换到RabbitMQ时启动报错的问题

记录计全支付切换到RabbitMQ时启动报错的问题 首先在application.yml中切换到RabbitMQ配置安装RabbitMQ、Erlang、延时插件 rabbitmq_delayed_message_exchange,延迟插件必装 首先在application.yml中切换到RabbitMQ配置 # 第一处rabbitmq:addresses: 127.0.0.1:56…

java安全可控、安可、国产信创、国产化有哪些替代品【完整版本】100%兼容测试

安全可控、安可、 国产信创、国产化 java安全可控、安可、国产信创、国产化有哪些替代品【完整版本】100%兼容测试 系统、芯片、CPU、缓存、数据库、中间件、负载均衡、WEB服务器、防火墙、消息队列 开发 角色: 前端☑ 后端☑ 测试□ 数据库☑ 产品✅ UI设计□ 是否熟悉国产…

python 合并 pdf

from pypdf import PdfMergerpdfs [file1.pdf, file2.pdf, file3.pdf, file4.pdf]merger PdfMerger()for pdf in pdfs:merger.append(pdf)merger.write("result.pdf") merger.close()参考 https://stackoverflow.com/questions/3444645/merge-pdf-files

Winform自定义控件 —— 开关

在开始阅读本文之前,如果您有学习创建自定义控件库并在其他项目中引用的需求,请参考:在Visual Studio中创建自定义Winform控件库并在其他解决方案中引用https://blog.csdn.net/YMGogre/article/details/126508042 0、引言 由于 Winform 框架并…

深入探索Jetpack Compose:大前端式客户端开发实战

💂 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】🤟 一站式轻松构建小程序、Web网站、移动应用:👉注册地址🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交…

(二)Jetpack Compose 布局模型

前文回顾 (一)Jetpack Compose 从入门到会写-CSDN博客 首先让我们回顾一下上一篇文章中里提到过几个问题: ComposeView的层级关系,互相嵌套存在的问题? 为什么Compose可以实现只测量一次? ComposeView和…

还拿B端设计经验,设计政务类系统,驴唇不对马嘴啦。

一、什么是政务类系统,涉及哪些领域 政务类系统是指用于政府机构或政府部门进行管理和运营的信息化系统。政务类系统的目的是提高政府工作效率、优化公共服务、加强政府与公民之间的互动和沟通。 政务类系统通常涵盖了各个方面的政府工作,包括但不限于以…

Media Encoder 2024 for Mac:专业的音视频编码神器

Media Encoder 2024 for Mac,作为Mac用户的专业音视频编码工具,凭借其强大的功能和用户友好的界面,深受专业人士的喜爱。它支持将各种格式的音视频素材转换为多种流行格式,如MP4、MOV、AVI等,满足不同的播放和发布需求…

计算机网络-DHCPv6基础

前面我们学习了IPv6地址可以通过手动配置、无状态自动配置、DHCPv6配置,这里简单学习下DHCPv6的知识点。 一、DHCPv6概述 DHCPv6 (Dynamic Host Configuration Protocol for IPv6) 是一种网络协议,设计用于IPv6网络环境中自动为网络设备分配必要的配置信…

NIOS II实现LED流水灯以及串口输出(DE2-115开发板)

NIOS II实现LED流水灯以及串口输出(DE2-115开发板) 前言什么是Qsys?什么是NIOSII?注意事项1、管脚配置2、配置NIOSII时的连接3、注意中断配置好后是这样的4、注意名称的配置5、设置双功能引脚 NIOS II的报错代码以及效果演示流水灯输出到电脑串口助手 …