13.Elasticsearch 7.15 Query DSL 之 term查询、terms查询和terms set查询
文章目录
- term 查询
- 介绍
- term 的顶级参数
- field的二级参数
- terms查询
- 介绍
- terms的顶级参数
- terms set 查询
- 介绍
- terms set的顶级参数
- field的二级参数
term 查询
介绍
返回在提供的字段中包含精确值的文档。
可以使用term查询根据价格、产品ID或用户名等精确值查找文档。
注意:避免对text字段使用term查询。会查询不出任何结果的
例如:
GET /_search
{"query": {"term": {"user.id": {"value": "kimchy","boost": 1.0}}}
}
term 的顶级参数
<field> (Required, object) 你希望查询的字段名.
field的二级参数
参数名 | 描述 |
---|---|
value | (Required, string) 您希望在提供的<field>中找到的值。要返回文档,该参数必须完全匹配字段值,包括空格和大小写。 |
boost | (Optional, float) 用于降低或提高查询相关性得分的浮点数。默认为1.0。 |
case_insensitive [7.10.0] | (Optional, Boolean) 当设置为true时,允许值与索引字段值的ASCII不区分大小写匹配。默认值为false,这意味着匹配的大小写取决于基础字段的映射。 |
terms查询
介绍
返回在提供的字段中包含一个或多个精确值的文档。
terms查询与term查询相同,只是您可以搜索多个值。
例如,下面的查询返回id为kimchy或者elkbee的文档
GET /_search
{"query": {"terms": {"user.id": [ "kimchy", "elkbee" ],"boost": 1.0}}
}
terms的顶级参数
参数名 | 描述 |
---|---|
<field> | (Optional, object) 您希望搜索的字段数组. 默认情况下,Elasticsearch将terms查询的这个参数数组大小限制为最多65,536个, 您可以通过index.max_terms_count这个设置来变更。 |
boost | (Optional, float) 用于降低或提高查询相关性得分的浮点数。默认为1.0。 |
terms set 查询
介绍
返回在提供的字段中包含最少数量的精确值的文档。
terms_set查询与terms查询相同,只是您可以定义返回文档所需的匹配词条的数量。例如:
- 一个名为programming_languages的字段包含已知编程语言的列表,例如用于工作候选人的c++、java或php。可以使用terms_set查询返回至少匹配其中两种语言的文档。
- 一个名为permissions权限字段,包含应用程序可能的用户权限列表。可以使用terms_set查询返回匹配这些权限子集的文档。
terms set的顶级参数
<field> (Required, object) 你希望查询的字段数组.
field的二级参数
参数名 | 描述 |
---|---|
terms | (必需的,字符串数组)您希望在提供的<field>中找到的词条数组。要返回文档,词条数量(传入的数组大小)必须与字段值的数量精确匹配,包括空格和大写。 |
minimum_should_match_field | (Optional, string) 字段名,填写的字段应该是个数字,包含返回文档所需的匹配条件的数量。 |
minimum_should_match_script | (Optional, string) 自定义脚本,包含返回文档所需的匹配条件的数量。 |
例如:
#1,有如下索引
# required_matches字段,一个long字段。此字段包含返回文档所需的匹配词条的数量。
PUT /job-candidates
{"mappings": {"properties": {"name": {"type": "keyword"},"programming_languages": {"type": "keyword"},"required_matches": {"type": "long"}}}
}#2,插入一个文档,这个文档必须匹配俩个词条 "c++", "java" ,都匹配的情况下才返回。
# 包含?refresh参数,这样文档就可以被立即进行搜索。
PUT /job-candidates/_doc/1?refresh
{"name": "Jane Smith","programming_languages": [ "c++", "java" ],"required_matches": 2
}
#这个文档必须匹配三个词条"c++", "java","php",都匹配的情况下才返回。
PUT /job-candidates/_doc/2?refresh
{"name": "Jane Smith","programming_languages": [ "c++", "java", "php" ],"required_matches": 3
}#这个文档只要匹配三个词条"c++", "java", "javascript"中的任意一个,就会返回。
PUT /job-candidates/_doc/3?refresh
{"name": "Jane Smith","programming_languages": [ "c++", "java", "javascript" ],"required_matches": 1
}#3,例如以下查询,将会把_id为1、2、3的文档都返回。
GET /job-candidates/_search
{"query": {"terms_set": {"programming_languages": {"terms": [ "c++", "java", "php" ],"minimum_should_match_field": "required_matches"}}}
}#4,例如以下查询,只返回_id为1、3的文档。
GET /job-candidates/_search
{"query": {"terms_set": {"programming_languages": {"terms": [ "c++", "java","javascript"],"minimum_should_match_field": "required_matches"}}}
}
13.Elasticsearch 7.15 Query DSL 之 term查询、terms查询和terms set查询相关推荐
- 15.Elasticsearch 7.15 Query DSL 之 Wildcard查询、Regexp查询
Wildcard查询 介绍 返回包含与通配符模式匹配的文档. 例子 以下搜索返回 user.id 字段包含以 ki 开头并以 y 结尾的文档.这些匹配项可以包括 kiy.kity 或 kimchy G ...
- ElasticSearch高级 (Query DSL查询 bulk批量操作 导入数据 各种查询 实战技巧-优化比重 全量与增量数据同步)
ElasticSearch高级 01-Query DSL(Domain Specific Language) 1 查询上下文 2 相关度评分:_score 3 元数据:_source 4 Query ...
- python 查询 elasticsearch 常用方法(Query DSL)
2019独角兽企业重金招聘Python工程师标准>>> 1. 建立连接 from elasticsearch import Elasticsearch es = Elasticsea ...
- elasticsearch系列四:搜索详解(搜索API、Query DSL)
一.搜索API 1. 搜索API 端点地址 从索引tweet里面搜索字段user为kimchy的记录 GET /twitter/_search?q=user:kimchy 从索引tweet,user里 ...
- spring elasticsearch 按条件删除_Elasticsearch系列之Query DSL
1 前言 我们先通过阅读官方文档,了解一下什么是 Query DSL . 1.1 Query DSL Elasticsearch provides a full Query DSL (Domain S ...
- 第三章 Elasticsearch Query DSL -- 查询
第三章 Elasticsearch Query DSL -- 查询 摘要 查询和过滤的上下文(context) 相关性得分 查询上下文 过滤上下文 示例(下面这些查询参数,后续会详述) 全文查询 in ...
- Elasticsearch高级查询Query DSL
一.高级查询Query DSL简介 1.Query DSL(简介 Elasticsearch中提供了一种强大的检索数据方式,这种检索方式称之为Query DSL(Domain Specified La ...
- Elasticsearch Query DSL基础介绍
查询语法(Query DSL) Elasticsearch提供标准RESTful风格的查询DSL来定义查询.可以将查询 DSL 看作是由两种子句组成的查询的 AST (Abstract Syntax ...
- Elasticsearch之Query DSL语法入门
1. query DSL入门 1.1 DSL query string 后边的参数原来越多,搜索条件越来越复杂,不能满足需求. GET /book/_search?q=name:java&si ...
最新文章
- python print函数用法_Python3.2中Print函数用法实例详解
- 关于android工程添加support-v7包的问题
- 深入浅出学Hive:Hive内建操作符与函数开发
- JavaFX学习之Web
- [pytorch、学习] - 3.12 权重衰减
- 正确获取Java事件通知
- java 服务降级_微服务的降级学习
- 万能驱动安装器_Windows驱动安装指南
- python设置tk退出_退出tkinter gui
- NSDate的简单用法
- 【编译器】VSCode配置Go语言开发环境
- windows 下rsync
- python GIL 全局锁
- Android应用内存泄漏的定位、分析与解决策略 1
- 基于SpringBoot的框架SOFABoot,青出于蓝而胜于蓝
- 关于计算机高中英语作文,关于电脑的高中英语作文:Computers
- JZOJ.5236【NOIP2017模拟8.7】利普希茨
- 关于WBS的一些知识点
- win10双 cd linux,win10系统将CdLinux装入硬盘的还原方案
- python txt文件读写 pandas_Python数据分析之Pandas读写外部数据文件!