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

相关文章

Java Stream 并行流简介、使用与注意事项小结

《JavaStream并行流简介、使用与注意事项小结》Java8并行流基于StreamAPI,利用多核CPU提升计算密集型任务效率,但需注意线程安全、顺序不确定及线程池管理,可通过自定义线程池与C... 目录1. 并行流简介​特点:​2. 并行流的简单使用​示例:并行流的基本使用​3. 配合自定义线程池​示

PostgreSQL简介及实战应用

《PostgreSQL简介及实战应用》PostgreSQL是一种功能强大的开源关系型数据库管理系统,以其稳定性、高性能、扩展性和复杂查询能力在众多项目中得到广泛应用,本文将从基础概念讲起,逐步深入到高... 目录前言1. PostgreSQL基础1.1 PostgreSQL简介1.2 基础语法1.3 数据库

Python库 Django 的简介、安装、用法入门教程

《Python库Django的简介、安装、用法入门教程》Django是Python最流行的Web框架之一,它帮助开发者快速、高效地构建功能强大的Web应用程序,接下来我们将从简介、安装到用法详解,... 目录一、Django 简介 二、Django 的安装教程 1. 创建虚拟环境2. 安装Django三、创

MySQL 索引简介及常见的索引类型有哪些

《MySQL索引简介及常见的索引类型有哪些》MySQL索引是加速数据检索的特殊结构,用于存储列值与位置信息,常见的索引类型包括:主键索引、唯一索引、普通索引、复合索引、全文索引和空间索引等,本文介绍... 目录什么是 mysql 的索引?常见的索引类型有哪些?总结性回答详细解释1. MySQL 索引的概念2

Qt QCustomPlot库简介(最新推荐)

《QtQCustomPlot库简介(最新推荐)》QCustomPlot是一款基于Qt的高性能C++绘图库,专为二维数据可视化设计,它具有轻量级、实时处理百万级数据和多图层支持等特点,适用于科学计算、... 目录核心特性概览核心组件解析1.绘图核心 (QCustomPlot类)2.数据容器 (QCPDataC

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分词器部署