elasticsearch 常用语法汇总

news2024/7/6 19:20:11

文章目录

  • 前言
    • 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 常用语法汇总

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.coloradmin.cn/o/1627771.html

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

相关文章

掌握TypeScript,成为前端高手(AI写作一键生成免费)

首先&#xff0c;这篇文章是基于笔尖AI写作进行文章创作的&#xff0c;喜欢的宝子&#xff0c;也可以去体验下&#xff0c;解放双手&#xff0c;上班直接摸鱼~ 按照惯例&#xff0c;先介绍下这款笔尖AI写作&#xff0c;宝子也可以直接下滑跳过看正文~ 笔尖Ai写作&#xff1a;…

免费获取!遗传算法+多目标规划算法+自适应神经模糊系统程序代码!

前言 遗传算法&#xff08;Genetic Algorithm&#xff0c;GA&#xff09;最早是由美国的 John holland于20世纪70年代提出&#xff0c;该算法是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型&#xff0c;通过数学的方式&#xff0c;将问题的求解过程转…

pyqt QSplitter控件

pyqt QSplitter控件 QSplitter控件效果代码 QSplitter控件 PyQt中的QSplitter控件是一个强大的布局管理器&#xff0c;它允许用户通过拖动边界来动态调整子控件的大小。这个控件对于创建灵活的、用户可定制的用户界面非常有用。 QSplitter控件可以水平或垂直地分割其包含的子…

靠生成式人工智能赚钱? 扎克伯格:再等几年吧

不用多说&#xff0c;AI人工智能就是2024年最热的技术&#xff0c;企业也希望通过AI技术大赚特赚。不过Meta CEO扎克伯格在公司2024年第一财季业绩会议上表示&#xff0c;从生成式人工智能中获利还需要几年时间。 R-C (1).jpg© 由 ITheat热点科技 提供 AI人工智能技术很多…

【数据结构与算法】:手搓顺序表(Python篇)

文章目录 一、顺序表的概念二、顺序表的实现1. 顺序表的创建1.1 扩容1.2 整体建立顺序表 2. 顺序表的基本运算算法2.1 顺序表的添加&#xff08;尾插&#xff09;2.2 指定位置插入2.3 指定位置删除2.4 顺序表的查找2.5 顺序表元素的索引访问2.6 顺序表元素的修改2.7 顺序表长度…

Java毕业设计 基于SpringBoot vue城镇保障性住房管理系统

Java毕业设计 基于SpringBoot vue城镇保障性住房管理系统 SpringBoot 城镇保障性住房管理系统 功能介绍 首页 图片轮播 房源信息 房源详情 申请房源 公示信息 公示详情 登录注册 个人中心 留言反馈 后台管理 登录 个人中心 修改密码 个人信息 用户管理 房屋类型 房源信息管理…

微信小程序:5.数据绑定

在Data中定义数据早wxml中进行数据使用 在data中定义数据 在页面对应的js对象中找到data&#xff0c;然后把数据进行定义即可 Page({data: {motto: Hello World,userInfo: {avatarUrl: defaultAvatarUrl,nickName: ,},hasUserInfo: false,canIUseGetUserProfile: wx.canIUse…

药房管理 T1072

#include<bits/stdc.h> using namespace std; int main(){int m,n;cin>>m>>n;int f[n];for(int i0;i<n;i)cin>>f[i];int count0;for(int i0;i<n;i){if(m>f[i]){mm-f[i];}else {count;}}cout<<count;return 0;}

【Redis 开发】缓存雪崩和缓存击穿

缓存问题 缓存雪崩解决方案 缓存击穿互斥锁逻辑时间基于互斥锁解决缓存击穿问题基于逻辑过期方式解决缓存击穿问题 缓存雪崩 缓存雪崩是指在同一时间段&#xff0c;大量的缓存key同时失效或者Redis服务器宕机&#xff0c;导致大量请求到达数据库&#xff0c;带来巨大压力 解决…

node.js egg.js

Egg 是 Node.js 社区广泛使用的框架&#xff0c;简洁且扩展性强&#xff0c;按照固定约定进行开发&#xff0c;低协作成本。 在Egg.js框架中&#xff0c;ctx 是一个非常核心且常用的对象&#xff0c;全称为 Context&#xff0c;它代表了当前 HTTP 请求的上下文。ctx 对象封装了…

【JavaEE网络】 TCP的可靠传输机制总结

目录 可靠传输实现机制确认应答超时重传连接管理滑动窗口流量控制拥塞控制延迟应答捎带应答 可靠传输实现机制 确认应答 这是保证可靠性的最核心机制 TCP将每个字节的数据都进行了编号。即为序列号。 这是为了防止连续发多条数据的时候&#xff0c;可能出现“后发先至”的情…

c++图论基础(2)

目录 图的存储方式&#xff1a; 邻接矩阵&#xff1a; 代码实现&#xff1a; 邻接表&#xff1a; 代码实现&#xff1a; 邻接矩阵邻接表对比&#xff1a; 带权图&#xff1a; 邻接矩阵存储&#xff1a; 邻接表存储(代码实现)&#xff1a; 图的存储方式&#xff1a; 邻…

ShardingSphere 5.x 系列【26】 数据分片原理之 SQL 路由

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.1.0 本系列ShardingSphere 版本 5.4.0 源码地址:https://gitee.com/pearl-organization/study-sharding-sphere-demo 文章目录 1. 概述2. 携带分片键2.1 直接路由2.2 标准路由2.3 笛卡尔路由3. 不携带分片…

CH4INRULZ-v1靶机练习实践报告

CH4INRULZ-v1靶机练习实践报告 1 安装靶机 靶机是.ova文件&#xff0c;需要用VirtualBox打开&#xff0c;但我习惯于使用VMWare,因此修改靶机文件&#xff0c;使其适用于VMWare打开。 解压ova文件&#xff0c;得到.ovf文件和.vmdk文件。直接用VMWare打开.ovf文件即可。 2 夺…

k8s学习(三十六)centos下离线部署kubernetes1.30(单主节点)

文章目录 服务器准备工作一、升级操作系统内核1 查看操作系统和内核版本2 下载内核离线升级包3 升级内核4 确认内核版本 二、修改主机名/hosts文件1 修改主机名2 修改hosts文件 三、关闭防火墙四、关闭SELINUX配置五、时间同步1 下载NTP2 卸载3 安装4 配置4.1 主节点配置4.2 从…

Java设计模式 _结构型模式_适配器模式

一、适配器模式 **1、适配器模式&#xff08;Adapter Pattern&#xff09;**是一种结构型设计模式。适配器类用来作为两个不兼容的接口之间的桥梁&#xff0c;使得原本不兼容而不能一起工作的那些类可以一起工作。譬如&#xff1a;读卡器就是内存卡和笔记本之间的适配器。您将…

JAVA:maven-->>检查 所有依赖 与 环境 兼容

内容 为了确保你项目中的所有依赖都彼此兼容&#xff0c;并与你的环境相适应&#xff0c;你可以利用 Maven 的依赖管理功能。Maven 有助于解决、升级&#xff0c;并对齐所有库的版本&#xff0c;以避免任何不一致或冲突。以下是检查兼容性的步骤&#xff1a; ### 检查兼容性的…

sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…

使用JavaScript日历小部件和DHTMLX Gantt的应用场景(一)

DHTMLX Suite UI 组件库允许您更快地构建跨平台、跨浏览器 Web 和移动应用程序。它包括一组丰富的即用式 HTML5 组件&#xff0c;这些组件可以轻松组合到单个应用程序界面中。 DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表&#xff0c;可满足项目管理应用…

DB索引B+树SQL优化

数据库的索引就像一本书的目录&#xff0c;查数据快人一步&#xff0c;快速定位&#xff0c;精准打击&#xff01; 什么是数据库的索引&#xff1f; 官方介绍索引是帮助MySQL高效获取数据的数据结构。更通俗的说&#xff0c;数据库索引好比是一本书前面的目录&#xff0c;能加…