ElasticSearch九--RequestBody和Query DSL简介

2024-03-28 23:32

本文主要是介绍ElasticSearch九--RequestBody和Query DSL简介,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

RequestBody和Query DSL简介

通过RequestBody 实现搜索

参数:

  • q:指定查询语句,使用Query String Syntax
  • df:默认字段,不指定会对所有字段进行查询
  • sort:排序
  • from/size: 用来分页
  • Profile 可以查看查询是如何被执行的

这个方法的参数和URI是一样的,比如我们在kibana里面执行下面的指令:

GET test_home/_search
{"profile": "true","from":0,"size":10,"sort":[{"id":"desc"}]
}

查询指定字段

这种方式还可以查询指定字段,通过_source参数来指定。支持通配符

指令

GET test_home/_search
{"profile": "true","query":{"match_all":{}},"_source":['job_name','id'] //指定字段
}

脚本字段

可以进行一些简单运算,拼接字符串等操作

指令

GET test_home/_search
{"profile": "true","query":{"match_all":{}},"script_fields":{"new_field":{"script":{"lang":"painless" //使用这个脚本"source": "doc['job_name'].value+'_hello'" //在职位名称后面拼接_hello}}}
}

结果

"fields":{"new_fields":["产品_hello"]
}

query DSL

通过DSL查询产品怎么办呢,可以使用query参数

GET test_home/_search
{"profile": "true","query":{"match":{   //使用match 而不是 match_all"job_name":"产品"  //这里就相当于出现产 或者 品 都会搜出来 左边的 job_name 就是搜索的字段}},"_source":['job_name','id'] //指定字段
}

如果想使用AND可以增加参数,如下:

GET test_home/_search
{"profile": "true","query":{"match":{   //使用match 而不是 match_all"job_name": {  //这里变成一个对象 左边的 job_name 就是搜索的字段"query":"产品", //这里是搜索内容"operator":"AND"  //这里指定AND OR NOT}}},"_source":['job_name','id'] //指定字段
}

短语搜索 match phrase

这里就是短语,单词搜索,等价于URI的phrase search

指令

GET test_home/_search
{"profile": "true","query":{"match_phrase":{   //使用match_phrase"job_name": {  //这里变成一个对象 左边的 job_name 就是搜索的字段"query":"产品", //这里是搜索内容"slop":1, //代表可以有一个错误}}},"_source":['job_name','id'] //指定字段
}

极客时间 ES 学习笔记

这篇关于ElasticSearch九--RequestBody和Query DSL简介的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/856994

相关文章

rust 中的 EBNF简介举例

《rust中的EBNF简介举例》:本文主要介绍rust中的EBNF简介举例,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 什么是 EBNF?2. 核心概念3. EBNF 语法符号详解4. 如何阅读 EBNF 规则5. 示例示例 1:简单的电子邮件地址

Python 异步编程 asyncio简介及基本用法

《Python异步编程asyncio简介及基本用法》asyncio是Python的一个库,用于编写并发代码,使用协程、任务和Futures来处理I/O密集型和高延迟操作,本文给大家介绍Python... 目录1、asyncio是什么IO密集型任务特征2、怎么用1、基本用法2、关键字 async1、async

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

Java实现Elasticsearch查询当前索引全部数据的完整代码

《Java实现Elasticsearch查询当前索引全部数据的完整代码》:本文主要介绍如何在Java中实现查询Elasticsearch索引中指定条件下的全部数据,通过设置滚动查询参数(scrol... 目录需求背景通常情况Java 实现查询 Elasticsearch 全部数据写在最后需求背景通常情况下

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe

Java操作ElasticSearch的实例详解

《Java操作ElasticSearch的实例详解》Elasticsearch是一个分布式的搜索和分析引擎,广泛用于全文搜索、日志分析等场景,本文将介绍如何在Java应用中使用Elastics... 目录简介环境准备1. 安装 Elasticsearch2. 添加依赖连接 Elasticsearch1. 创

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

SpringBoot基于MyBatis-Plus实现Lambda Query查询的示例代码

《SpringBoot基于MyBatis-Plus实现LambdaQuery查询的示例代码》MyBatis-Plus是MyBatis的增强工具,简化了数据库操作,并提高了开发效率,它提供了多种查询方... 目录引言基础环境配置依赖配置(Maven)application.yml 配置表结构设计demo_st