elasticsearch 常用语法汇总

文章目录

  • 前言
    • 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.hqwc.cn/news/652577.html

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

相关文章

【golang学习之旅】Go 的循环结构

系列文章 【golang学习之旅】报错&#xff1a;a declared but not used 【golang学习之旅】Go 的基本数据类型 目录 系列文章for循环基本的for循环for 变 while死循环 for-range for循环 Go 只有一种循环结构&#xff1a;for 循环 基本的for循环 和C以及Java语言一样&#xf…

社区新零售:重构邻里生活圈,赋能美好未来

新时代的邻里脉动 在城市的肌理中&#xff0c;社区作为生活的基本单元&#xff0c;正经历一场由新零售引领的深刻变革。社区新零售&#xff0c;以其独特的商业模式、创新的技术手段和以人为本的服务理念&#xff0c;重新定义了社区商业的边界&#xff0c;重构了邻里生活的形态…

【算法基础实验】图论-基于DFS的连通性检测

基于DFS的连通性检测 理论基础 在图论中&#xff0c;连通分量是无向图的一个重要概念&#xff0c;特别是在处理图的结构和解析图的组成时。连通分组件表示图中的一个子图&#xff0c;在这个子图中任意两个顶点都是连通的&#xff0c;即存在一条路径可以从一个顶点到达另一个顶…

公园景区伴随音乐系统-公园景区数字IP广播伴随音乐系统建设指南

公园景区伴随音乐系统-公园景区数字IP广播伴随音乐系统建设指南 由北京海特伟业任洪卓发布于2024年4月23日 随着“互联网”被提升为国家战略&#xff0c;传统行业与互联网的深度融合正在如火如荼地展开。在这一大背景下&#xff0c;海特伟业紧跟时代步伐&#xff0c;凭借其深厚…

vue实现录音并转文字功能,包括PC端web,手机端web

vue实现录音并转文字功能&#xff0c;包括PC端&#xff0c;手机端和企业微信自建应用端 不止vue&#xff0c;不限技术栈&#xff0c;vue2、vue3、react、.net以及原生js均可实现。 原理 浏览器实现录音并转文字最快捷的方法是通过Web Speech API来实现&#xff0c;这是浏览器…

Swift-31-泛型和类型操作

泛型 Swift泛型(generics) 让我们写出的类型和函数可以使用对于我们或编译器都未知的类型。 很多内建类型(包括可空类型、数组和字典)都是用泛型实现的&#xff0c;比如数组和一些集合就是用泛型方式来实现的。 一种运行时进行类型检查的技术&#xff0c;效率高但是不安全。在…

JAVA前端快速入门基础_javascript入门(01)

写在前面:本文用于快速学会简易的JS&#xff0c;仅做扫盲和参考作用 1.JS是什么 JavaScript是一门跨平台&#xff0c;面向对象的脚本语言(即不需要编译&#xff0c;可以直接通过浏览器进行解释)。JS和Java是两门完全不相同的语言&#xff0c;但是基础的语法是类似的 2.JS的引…

RK3568 学习笔记 : busybox 制作 ext4最小根文件系统

前言 开发板型号&#xff1a; 【正点原子】 的 RK3568 开发板 AtomPi-CA1 使用 VMware 虚拟机 ubuntu 20.04 编译 busybox&#xff0c;并制作 emmc 中的 ext4 根文件系统 rootfs 下载 busybox 可以在 https://busybox.net/downloads/snapshots/ 下载最新的 busybox&#xff…

Linux实验一:Linux环境及编程工具

目录 一、实验目的二、实验内容三、参考代码四、实验步骤步骤1. 编辑源代码test1.c步骤2. 编译源代码test1.c步骤3. 调试test1步骤4. 重新编译运行test1.c 五、实验结果六、实验总结 一、实验目的 1、掌握Linux C开发过程中的基本概念&#xff1b; 2、掌握如vim&#xff0c;GC…

leetcode和相关题目

1. 两数之和 直接利用hashmap存储值和对于索引&#xff0c;利用target-nums[i]去哈希表里找对应数值。返回下标。 class Solution { public:vector<int> twoSum(vector<int>& nums, int target) {unordered_map<int, int> mp;vector<int> res;fo…

CentOS安装SonarQube

系列文章目录 文章目录 系列文章目录前言前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 sonar是一款静态代码质量分析工具,支持Java、Python、PHP、JavaScript、…

一分钟理解:比特币第一次严重漏洞,生产1844亿枚比特币!是如何发生的

1、事件 2010年8月15日&#xff08;也就是比特币诞生的第二年&#xff0c;创世区块于2009年1月3日诞生&#xff09;&#xff0c;有人发现&#xff0c;在比特币区块链的第74638块上&#xff0c;一笔让人惊愕的交易。 这笔交易出现了184 467 440 737.09551616个比特币&#xff…