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

相关文章

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

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

业务协同平台--简介

一、使用场景         1.多个系统统一在业务协同平台定义协同策略,由业务协同平台代替人工完成一系列的单据录入         2.同时业务协同平台将执行任务推送给pda、pad等执行终端,通知各人员、设备进行作业执行         3.作业过程中,可设置完成时间预警、作业节点通知,时刻了解作业进程         4.做完再给你做过程分析,给出优化建议         就问你这一套下

容器编排平台Kubernetes简介

目录 什么是K8s 为什么需要K8s 什么是容器(Contianer) K8s能做什么? K8s的架构原理  控制平面(Control plane)         kube-apiserver         etcd         kube-scheduler         kube-controller-manager         cloud-controlle