ES-Search API

news2024/11/16 1:47:40

一、Search API的分类

  • URI Search
    在url中传入查询参数进行查询,
  • Request Body Search
    使用es提供的,基于json的更加完备的Query Domain Specific Language(DSL)
语法范围
/_search集群上所有的索引
/index1/_search查询索引名为index1的索引
/index1,index2/_search查询索引名为index1和index2的索引中的数据
/index*/_search查询index开头的索引

二、URI Search

  • URI查询参数说明
    GET /movies/_search?q=2012&df=title&sort=year:desc&from=0&size=10&timeout=1s
    {
    “profile”:true
    }

    • q指定查询语句
    • df指定查询的字段,不指定时,会对索引内所有字段进行查询
    • sort排序
    • from+size分页参数
    • profile查看查询如何被执行(注意这个参数放在请求体里)
  • q指定参数查询详细描述

    • 指定字段查询 vs 泛查询
      • q=title:2012 指定了仅对title字段进行查询,效果与q=2012&df=title相同
      • q=2012 对所有字段进行查询
    • 布尔查询
      • AND OR NOT 或者 && || !
        • 必须大写
        • title:(Beautiful OR Mind)
      • 分组
        • +代表must
        • -代表must not
        • title:(+Beautiful -Mind)
    • Term查询 vs Phrase查询
      • q=Beautiful Mind 效果与 q=Beautiful OR Mind 一样
      • q=“Beautiful Mind” 效果与 q=Beautiful AND Mind一样
    • 分组 vs 引号
      • q=title:Beautiful Mind 这个查询与tile:Beautiful OR Mind效果一样,即查询title为Beautiful 或 所有字段中存在Mind;如果想要查询title中存在Beautiful OR Mind,则需要使用括号进行分组,即q=title:(Beautiful Mind)
      • q=title:“Beautiful Mind”
    • 范围查询
      • 区间表示[]表示闭区间 {}表示开区间
      • q=year:[2003 TO 2023]
      • q=year:[* TO 2023]
    • 算数符号
      • q=year:(>=2003 && <=2023)
      • q=year:<=2023
    • 通配符(查询效率低,占用内存大,尤其是放在最前面,不建议使用)
      • q=title:(Beuti???) ?代表1个字符
      • q=title:(Beuti*) *或者0代表多个字符
    • 正则
      *
    • 模糊匹配与近似查询

三、Request Body Search

  • 请求 request
    在这里插入图片描述
  • 响应 response
    在这里插入图片描述
    • 衡量相关度
      • Precision(查准率) - 尽可能的返回较少的无关文档
      • Recall(查全率)-尽量返回较多的相关文档
      • Ranking-是否能够按照相关度进行排序?
        其中查准率和查全率的计算方式我们用图来示例:
        在这里插入图片描述
  • Request Body用法详解
GET /movies/_search
{
	"profile":true, ## 展示查询过程
	"_source":["title","order_date"], ## 要查询的字段,支持通配符比如[*name*]
	"script_fields":{ ## 脚本字段
		"new_field_name":{ ## 新字段名称
			"script":{ ## 指定脚本
				"lang":"painless", ## 指定要执行的脚本
				"source":"doc['order_date'].value+'hello'" ## 脚本内容
			}
		}
	}
	"from":0, ## 分页偏移量,从0开始
	"size":20, ## 每页数量,默认10
	"query":{ ## 查询条件
		"match_all":{},	## 查询全部
		"match":{
			"title":"Beutiful Mind", ## 查询title中存在Beutiful OR Mind的文档
			"title":{ ## 查询title中存在Beutiful AND Mind的文档
				"query":"Beutiful Mind", 
				"operator":"AND"
			}
		},
		"match_phrase":{ ## 模糊匹配
			"title":{ ## 查询title中按顺序存在Beutiful AND Mind 但是中间可以存在一个其他单词的文档
				"query":"Beutiful Mind",
				"slop":1
			}
		},
		"query_string":{ ## 查询字段title中存在Beutiful AND Mind
			"default_field":"title",
			"query":"Beutiful AND Mind"
		},
		"query_string":{
			"fields":["title","name"],
			"query":"(Beutiful AND Mind) OR (JAVA AND ES)"
		},
		"simple_query_string":{ ## 类似于query_string,不支持AND OR NOT会当作字符串处理,Term之间默认是OR,可以指定operator,+代替AND  -代替NOT  |代替OR
			"fields":["title","name"],
			"query":"Beutiful -Mind",
			"default_operator":"AND"
		}
	},
	"sort":[ ## 排序条件,最好在数字型和日期型字段加上排序
		{"order_date":"desc"}
	]
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2130334.html

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

相关文章

828华为云征文|基于华为云Flexus云服务器X部署Minio服务

文章目录 ❀前言❀Minio简介❀部署环境准备❀yum环境配置❀安装docker❀获取镜像❀创建挂载目录❀启动容器❀查看容器状态❀安全组开放❀浏览器访问❀总结 ❀前言 大家好&#xff0c;我是早九晚十二。 近期华为云推出了最新的华为云Flexus云服务器X&#xff0c;这款云主机在算…

开发模式和环境搭建

后台用到的知识 Validatation&#xff1a;参数校验Mybatis&#xff1a;数据库的操作Redis&#xff1a;缓存Junit&#xff1a;单元测试项目部署 开发模式 使用接口文档对应路径和请求方式、请求参数、响应数据作详细说明。 环境搭建 执行big_event.sql脚本准备数据库表 创建…

240416 初始化列表 构造与隐式类型转换 static成员 友元 内部类

一、初始化列表 1、认识 【P】Stack不具备默认构造&#xff0c;MyQueue也无法生成默认构造 【S】引入初始化列表 MyQueue(int n):_pushst(n),_popst(n),_size(0) {}初始化列表本质上可以理解为每个对象中成员定义的地方 所有成员既可以在初始化列表初始化&#xff0c;也可以…

1. geoserver 安装

1. 下载 geoserver官网 以window为例 选择稳定版本 不同平台需要下载不同安装包 如果需要发布瓦片图层&#xff0c;需要下载扩展插件 前提需要有java环境&#xff0c;根据提示默认安装&#xff0c;需要安装在不同位置选择自己的文件夹即可 2. 使用 扩展插件解压之后的所…

【油猴脚本】编写一个简单的油猴(Tampermonkey)脚本,在网页中加入一个表格

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享【油猴脚本】编写一个简单的油猴&#xff08;Tampermonkey&#xff09;脚本&#xff0c;在网页中加入一个表格&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xf…

2024年最新老薛主机优惠码

老薛主机优惠码是其推出的一种优惠促销方式&#xff0c;大家在新购或续费老薛主机相关产品时&#xff0c;填写使用优惠码可以享受专属折扣。 一、老薛主机优惠码 1、终身七折优惠码&#xff1a;u70 2、新购七折优惠码&#xff1a;ABC 二、优惠码适用范围 老薛主机的优惠码通…

《使用 LangChain 进行大模型应用开发》学习笔记(三)

前言 本文是 Harrison Chase &#xff08;LangChain 创建者&#xff09;和吴恩达&#xff08;Andrew Ng&#xff09;的视频课程《LangChain for LLM Application Development》&#xff08;使用 LangChain 进行大模型应用开发&#xff09;的学习笔记。由于原课程为全英文视频课…

Keil MDK报错:Browse information of one or more files is not available----解决方法:

Keil MDK报错&#xff1a;Browse information of one or more files is not available----解决方法&#xff1a; 问题描述 最近在项目中遇到这样一个问题&#xff1a;拷贝过来添加到工程的.c文件在编译时报如下错误&#xff1a; 解决方案&#xff1a; 总结以下一些解决办法&…

PCL 读取和保存点云

目录 一、概述 1.1原理 1.2实现步骤 二、代码实现 2.1关键函数 2.2完整代码 三、实现效果 PCL点云算法汇总及实战案例汇总的目录地址链接&#xff1a; PCL点云算法与项目实战案例汇总&#xff08;长期更新&#xff09; 一、概述 1.1原理 PCL (Point Cloud Library) 是…

开源免费的工贸一体行业ERP管理系统

引言 在当今数字化浪潮汹涌澎湃的时代&#xff0c;中小企业面临着前所未有的挑战与机遇。如何实现数字化转型发展&#xff0c;成为了众多中小企业主心头的大事。 据相关数据显示&#xff0c;目前我国中小企业数量已经超过了 4000 万户&#xff0c;然而成功实现数字化转型的比例…

单向链表之创建,插入,输出(下)

文章目录 &#x1f34a;自我介绍&#x1f34a;插入&#xff08;下&#xff09;尾插法有序插入&#xff1a;按照指定顺序插入 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以&#xff1a;点赞关注评论收藏&#xff08;一键四连&#xff09;哦~ &#x1f34a;自我介绍 H…

Arduino 2线串行 通信 驱动 LCD 12864

上效果图片 源代码 Arduino 328p /****************************************************************** 2线 LCD 12864 (屏幕主控芯片 ST7920)******************************************************************//***********************端口/引脚定义区域************…

Golang | Leetcode Golang题解之第401题二进制手表

题目&#xff1a; 题解&#xff1a; func readBinaryWatch(turnedOn int) (ans []string) {for i : 0; i < 1024; i {h, m : i>>6, i&63 // 用位运算取出高 4 位和低 6 位if h < 12 && m < 60 && bits.OnesCount(uint(i)) turnedOn {ans …

WPF创建不规则窗体时WebBrowser控件不显示的问题

最近有小伙伴需要在不规则窗体上放置WebBrowser控件&#xff0c;因为设置了WindowStyle"None" 和 AllowsTransparency"True"。 导致WebBrowser控件不显示。 界面代码如下所示&#xff1a; 1 <Window x:Class"WebBrowserDemo.MainWindow" …

【CTF Web】BUUCTF BUU UPLOAD COURSE 1 Writeup(文件上传+PHP+文件包含漏洞)

BUU UPLOAD COURSE 1 1 上课用~ 点击启动靶机。 解法 疑似存在文件包含漏洞。 http://15a5666e-1796-4f76-b892-0b69cf97df8e.node5.buuoj.cn:81/index.php?fileupload.php查看网页源代码。判断是后端检查。 <!DOCTYPE html> <html lang"zh-cn"> &…

区块链Dapp开发:质押挖矿的各模式开发详解

质押挖矿是区块链去中心化金融&#xff08;DeFi&#xff09;生态系统中的核心部分&#xff0c;吸引了大量用户参与。随着Dapp&#xff08;去中心化应用&#xff09;的普及&#xff0c;质押挖矿的模式多样化发展&#xff0c;不同模式各有其优点和风险。本文将介绍质押挖矿的基本…

SpringBoot快速接入OpenAI大模型(JDK8)

使用AI4J快速接入OpenAI大模型 本博文给大家介绍一下如何使用AI4J快速接入OpenAI大模型&#xff0c;并且如何实现流式与非流式的输出&#xff0c;以及对函数调用的使用。 介绍 由于SpringAI需要使用JDK17和Spring Boot3&#xff0c;但是目前很多应用依旧使用的JDK8版本&…

计算机毕业设计选题推荐-校园车辆管理系统-Java/Python项目实战(亮点:数据可视化分析、账号锁定)

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

最新版微服务项目搭建

一&#xff0c;项目总体介绍 在本项目中&#xff0c;我将使用alibabba的 nacos 作为项目的注册中心&#xff0c;使用 spring cloud gateway 做为项目的网关&#xff0c;用 openfeign 作为服务间的调用组件。 项目总体架构图如下&#xff1a; 注意&#xff1a;我的Java环境是17…

C语言-数据结构 弗洛伊德算法(Floyd)邻接矩阵存储

弗洛伊德算法相比迪杰斯特拉相似的地方都是遍历邻接矩阵不断调整最短路径的信息&#xff0c;并且两种算法面对多源最短路径的时间复杂度都是O(n^3)&#xff0c;Floyd采用的是动态规划而Dijkstra是采用贪心的思想。在Floyd中我们将创建两个数组进行辅助&#xff0c;一个path二维…