elasticsearch 常用语法汇总

devtools/2024/9/25 21:29:58/

文章目录

  • 前言
    • elasticsearch 常用语法汇总
      • 1. 创建索引
      • 2. 检索索引信息
      • 3. 删除索引
      • 4. 文档操作
        • 4.1. 对blog_new索引指定文档ID新增
        • 4.2. 对blog_new索引不指定文档ID新增,随机文档ID:
        • 4.3. 获取文档
        • 4.4. 更新文档
        • 4.5. 删除文档
      • 5. 查询
        • 5.1. 匹配查询
        • 5.2. 范围查询
        • 5.3. 布尔查询
        • 5.4. 分页查询

前言

  如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
  而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!


elasticsearch__7">elasticsearch 常用语法汇总

1. 创建索引

PUT /<index_name>

示例:

PUT /<index_name>
{"settings": {"number_of_shards": 10,  // 将主分片数量"number_of_replicas": 1  // 根据需要设置副本数量}
}

在这里插入图片描述

2. 检索索引信息

GET /<index_name>

在这里插入图片描述

3. 删除索引

DELETE /<index_name>

在这里插入图片描述

4. 文档操作

测试:索引:blog_new

4.1. 对blog_new索引指定文档ID新增
POST /blog_new/_doc/文档ID
{"title": "jstat命令查看jvm的GC信息6","content": "jstat命令查看jvm的GC信息99999999999923213","author": "uuuuu","publish_date": "2024-04-26","tags": ["Elasticsearch", "Search", "Tutorial"]
}

在这里插入图片描述

4.2. 对blog_new索引不指定文档ID新增,随机文档ID:
POST /blog_new/_doc
{"title": "jstat命令查看jvm的GC信息6","content": "jstat命令查看jvm的GC信息99999999999923213","author": "uuuuu","publish_date": "2024-04-26","tags": ["Elasticsearch", "Search", "Tutorial"]
}

在这里插入图片描述

4.3. 获取文档
GET /<index_name>/_doc/<document_id>

在这里插入图片描述

4.4. 更新文档
POST /<index_name>/_update/<document_id>
{"doc": {"field1": "new_value1","field2": "new_value2",...}
}

在这里插入图片描述
获取文档:
在这里插入图片描述

4.5. 删除文档
DELETE /<index_name>/_doc/<document_id>

在这里插入图片描述

5. 查询

在Elasticsearch中,搜索文档通常涉及构建一个查询DSL,以指定要搜索的内容和搜索条件。查询DSL可以包含不同类型的查询,如匹配查询、范围查询、布尔查询,聚合查询等

5.1. 匹配查询
# 匹配查询
GET /blog_new/_search
{"query": {"match": {"author": "糖炒栗子"}},"size": 1000 //设置查询返回数
}

"match"查询:
1、作用:用于在文本字段中执行全文搜索,查找包含指定词语或短语的文档。
2、使用场景:适用于执行基于文本内容的搜索,比如在文章标题、正文或作者名中查找特定关键词。
3、示例:“match”: { “field_name”: “search_term” }
在这里插入图片描述

5.2. 范围查询
{"query": {"range": {"age": {"gte": 18,"lte": 30}}},"size": 1000 //设置查询返回数
}
  • “range”:指定进行范围查询。
  • “age”:指定要进行范围查询的字段名。
  • “gte”:表示大于或等于(Greater Than or Equal to),即最小值。
  • “lte”:表示小于或等于(Less Than or Equal to),即最大值。

示例:

GET /blog_new/_search
{"query": {"range": {"content": {"gte": "18","lte": "300"}}},"size": 1000 //设置查询返回数
}

在这里插入图片描述

5.3. 布尔查询
{"query": {"bool": {"must": [{ "match": { "title": "Elasticsearch" }},{ "range": { "publish_date": { "gte": "2022-01-01" }}}],"must_not": [{ "match": { "status": "draft" }}],"should": [{ "match": { "author": "John Doe" }}],"minimum_should_match": 1}},"size": 1000 //设置查询返回数
}

在这个示例中,我们使用了布尔查询来构建复杂的查询逻辑,包括以下几个部分:

  • must:指定了所有这些条件都必须满足的查询子句。在示例中,文档的标题必须包含"Elasticsearch",并且发布日期必须在2022年1月1日之后。
  • must_not:指定了文档不能匹配的条件。在示例中,文档的状态不能是"draft"。
  • should:指定了一个可选条件,如果满足则增加文档的匹配分数。在示例中,作者是"John Doe"的文档将得到一定的优先级,但不是必须的。
  • minimum_should_match:指定了至少满足几个"should"查询条件,默认是0。在示例中,至少有一个"should"查询条件必须满足。

这个布尔查询的示例展示了如何利用布尔逻辑组合多个条件,以精确地过滤和排序文档。您可以根据实际需求修改查询条件和逻辑,以实现您想要的查询效果。
示例:

GET /blog_new/_search
{"query": {"bool": {"must":[{"match": {      "tags": "Elasticsearch"    }},{"range": {   "content": {"gte": "18","lte": "300"  }}}],"must_not": [{ "match": { "author": "yangzhenyu" }}],"should": [{ "match": { "author": "糖炒栗子" }}],"minimum_should_match": 1}}
}

在这里插入图片描述

5.4. 分页查询

您可以使用"from"和"size"参数来实现分页:

  • "from"参数指定了查询结果中的偏移量,即从哪个文档开始返回结果。
  • "size"参数指定了每页返回的文档数。

例如,如果您想要获取第一页的结果,每页返回10个文档,您可以将"from"设置为0,"size"设置为10。如果想获取第二页的结果,您可以将"from"设置为10,"size"设置为10,以此类推。
以下是一个示例查询的JSON格式,其中包括了设置分页参数的部分。

{"query": {// 查询条件},"from": 0,  // 从第一个文档开始"size": 10  // 返回10个文档
}

示例:

GET /blog_new/_search
{"query": {"bool": {"must":[{"match": {      "tags": "Elasticsearch"    }},{"range": {   "content": {"gte": "18","lte": "300"  }}}]}},"from":0,"size": 1000
}

在这里插入图片描述

GET /blog_new/_search
{"query": {"bool": {"must":[{"match": {      "tags": "Elasticsearch"    }},{"range": {   "content": {"gte": "18","lte": "300"  }}}]}},"from":343,"size": 1000
}

在这里插入图片描述


http://www.ppmy.cn/devtools/19008.html

相关文章

埃夫特机器人更换编码器电池

一、编码器电池位置 埃夫特机器人编码器电池位置&#xff0c;在机器人基座底部位置&#xff0c;将编码器电池包拆卸下来&#xff0c;并按线标将新的编码器电池连接上去。 二、消除各轴编码器报警 点开监控选项中的驱动器页面&#xff0c;输入密码1975&#xff0c;开打权限管理…

CasinoRoyale靶机练习实践报告

CasinoRoyale靶机练习实践报告 下载地址: https://drive.google.com/open?id1FYP246L63zShV00wOckAQ5F5XJ4HkZ0Lhttps://download.vulnhub.com/casinoroyale/CasinoRoyale.ovahttps://download.vulnhub.com/casinoroyale/CasinoRoyale.ova.torrent ( Magnet) 1 安装靶机 …

IOS 纯代码自定义UIView案例

#import <UIKit/UIKit.h>NS_ASSUME_NONNULL_BEGINinterface OrderAfterPeriodSelectNumView : UIView //左边标题 property (nonatomic,strong) UILabel *titleLab; //数量 property (nonatomic,strong) UILabel *numLab;end #import "OrderAfterPeriodSelectNumVie…

BUUCTF——[RoarCTF 2019]Easy Java

BUUCTF——[RoarCTF 2019]Easy Java 1.既然是登录框嘛&#xff0c;不得随便输入个弱口令&#xff0c;进行尝试 2.使用弱口令爆破了一下&#xff0c;直接就是429,无果 3.查看版本信息 4.帮助文档这里测试啦任意文件读取&#xff0c;无果 5.知道服务器的名称是openresty 6.…

【stomp 实战】Spring websocket使用详解和基本原理

spring框架对websocket有很好的支持&#xff0c;stomp协议作为websocket的子协议&#xff0c;Spring也做了很多封装&#xff0c;让我们在开发中易于使用。 学习使用Spring的Websocket模块&#xff0c;当然最好的办法就是看官网说明了。本篇文章对官网做一些简述和个人的理解。 …

怎么理解Fiber,Fiber解决了什么问题

问题 JavaScript引擎和浏览器的渲染引擎两个线程是互斥的,当有一个线程在执行的时候,另一个线程只能挂起等待。 如果JavaScript线程长时间占用主线程,那么渲染引擎的线程就得长时间等待,页面长时间不更新,会导致页面的响应度变差,给用户的感觉就是页面很卡。 这也是Re…

【前端技术】CSS基本语法(二)

一、 flex布局 flex布局称之为弹性布局给父元素设置display:flex&#xff0c;子元素可以自动挤压或拉伸内容&#xff0c;主轴方向默认为水平方向&#xff08;从左至右&#xff09; <!DOCTYPE html> <html lang"en"><head><meta charset"…

# IDEA2019 如何打开 Run Dashboard 运行仪表面板

IDEA2019 如何打开 Run Dashboard 运行仪表面板 段子手168 1、依次点击 IDEA 上面工具栏 —> 【View】 视图。 —> 【Tool Windows】 工具。 —> 【Run Dashboard】 运行仪表面板。 2、如果 【Tool Windows 】工具包 没有 【Run Dashboard】 运行仪表面板 项 依次…