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.hqwc.cn/news/707051.html

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

相关文章

wamp 安装 PHP8

最近的项目需求,需要将PHP 升级8使用,一直都是用wamp ,所以需要在wamp集成PHP8 1、首先下载 php8 的包。地址: PHP: Downloadshttps://www.php.net/downloads.php 下载版本是目前最新的 PHP8.3.7,不要下载nts 版本&a…

动态规划高频问题(算法村第十九关白银挑战)

最少硬币数 322. 零钱兑换 - 力扣(LeetCode) 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总…

各种姿势打穿企业内网

以前不是说要讲隧道吗??? 鸽了这么久终于想起来了!!! 1.本次实验环境拓扑 先来讲一下本次的实验环境吧,这样会更加清晰明了一点 首先我们是拿到了win7,然后最终目标上线内网的Wi…

ubuntu 计算器 gnome-calculator

sudo apt install gnome-calculator gnome-calculator

霍庭格TruPlasma MF 7100 7050电源现货50KW

霍庭格TruPlasma MF 7100 7050电源现货50KW

文档分类FastText模型 (pytorch实现)

文档分类FastText FastText简介层次softmaxN-gram特征FastText代码(文档分类) FastText简介 FastText与之前介绍过的CBOW架构相似,我们先来会议一下CBOW架构,如下图: CBOW的任务是通过上下文去预测中间的词&#xff0…

详解动态规划之01背包问题及其空间压缩(图文并茂+例题讲解)

1. 动态规划问题的本质 记忆化地暴力搜索所有可能性来得到问题的解 我们常常会遇到一些问题,需要我们在n次操作,且每次操作有k种选择时,求出最终需要的最小或最大代价。处理类似的问题,我们一般需要遍历所有的可能性(相当于走一遍…

STM32-串口通信波特率计算以及寄存器的配置详解

您好,我们一些喜欢嵌入式的朋友一起建立的一个技术交流平台,本着大家一起互相学习的心态而建立,不太成熟,希望志同道合的朋友一起来,抱歉打扰您了QQ群372991598 串口通信基本原理 处理器与外部设备通信的两种方式 并行…

邮箱地址验证软件有哪些-邮件地址验证软件

邮箱地址验证软件是帮助用户验证电子邮箱地址是否有效和真实存在的工具。以下是一些常用的邮箱地址验证软件: 易邮件地址验证大师:这是电子邮件营销平台MailerLite提供的一个简单的电子邮件验证工具,通过多层验证过程保证高准确率。寅甲邮件…

ChatGPT-4o 实战 如何快速分析混淆加密和webpack打包的源码

ChatGPT-4o 几个特点 一个对话拥有长时间的记忆,可以连续上传文件,让其分析,最大一个代码文件只能3M,超出3M的文件,可以通过split-file可以进行拆分 其次ChatGPT-4o可以生成文件的下载链接,这有利于大文件的…

TypeScript的数据类型系统

TypeScript的数据类型系统 在上一篇文章中,我们介绍了TypeScript的基本概念和它与JavaScript的关系。TypeScript的核心优势之一是其强大的类型系统,它提供了丰富的数据类型,使得代码更加可靠和易于维护。本文将深入探讨TypeScript中的各种数…

gpt4o在哪用?

GPT-4o功能? 1.感知用户情绪:前沿研究部门主管陈信翰(Mark Chen)让ChatGPT-4o聆听他的呼吸,聊天机器人侦测到他急促的呼吸,并幽默地建议他不要像吸尘器那样呼吸,要放慢速度。随后Mark深呼吸一次…