首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Elasticsearch 查询in 和 not in 的实现方式

Elasticsearch 查询in 和 not in 的实现方式

作者头像
执笔记忆的空白
发布于 2020-12-24 01:59:45
发布于 2020-12-24 01:59:45
5K00
代码可运行
举报
文章被收录于专栏:Java日常Java日常
运行总次数:0
代码可运行

最近用到ES查询,因用的是Java写的,需要实现一个需求: 过滤一部分id, 查询时不需要查出来。

既然需要不包含,那么首先需要实现包含的方式(精确完全匹配),这里我们要用到的是termQuery

首先看下ES Bool联合查询的属性:

bool联合查询: must,should,must_not

联合查询就会使用到must,should,must_not三种关键词。

这三个可以这么理解

  • must: 文档必须完全匹配条件
  • should: should下面会带一个以上的条件,至少满足一个条件,这个文档就符合should
  • must_not: 文档必须不匹配条件

具体案例,我需要过滤掉不用的exerciseId:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        BoolQueryBuilder exersiceBoolQuery = QueryBuilders.boolQuery();
        if (exersiceIds != null && exersiceIds.size() > 0)
        {
            for (String exerciseId: exersiceIds)
            {
                exersiceBoolQuery.mustNot(QueryBuilders.termQuery("id", exerciseId));
            }
        }

最后在发送请求的时候,加上你的exersiceBoolQuery 即可

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/11/30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ElasticSearch进阶:一文全览各种ES查询在Java中的实现
这篇博文的主题是ES的查询,因此我整理了尽可能齐全的ES查询场景,形成下面的图:
云深i不知处
2021/11/04
19.8K1
Java 实现 Elasticsearch 查询当前索引全部数据
通常情况下,Elasticsearch 为了提高查询效率,对于不指定分页查询条数的查询语句,默认会返回10条数据。那么这就会有一种情况,当你需要一次性返回 Elasticsearch 索引中的全部数据时,就无法实现了。这个时候你可能会考虑,比如我将每页取值的size 设置的很大,这样或许可以解决问题,但是数据量的上升你是无法控制的,最终会有一天数据量会超过你此时设置的最大 size,那么这就是一个雷点。并且如果一次查询很大量数据的话,即便是 Elasticsearch 查询效率高的索引结构可能也会导致查询时长较长,甚至响应超时。那么是否有一种查询效率高,且相对灵活的方式可以查询 Elasticsearch 的索引中全部数据呢?答案是:有的。
六月的雨在Tencent
2024/12/25
6440
elasticsearch 跨索引联合多条件查询
Elasticsearch 是一个免费且开放的分布式搜索和分析引擎。适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据。Elasticsearch 在 Apache Lucene 的基础上开发而成,以其简单的 REST 风格 API、分布式特性、速度和可扩展性而闻名,是 Elastic Stack 的核心组件;Elastic Stack 是一套适用于数据采集、扩充、存储、分析和可视化的免费开源工具。人们通常将 Elastic Stack 称为 ELK Stack(代指 Elasticsearch、Logstash 和 Kibana),目前 Elastic Stack 包括一系列丰富的轻量型数据采集代理,这些代理统称为 Beats,可用来向 Elasticsearch 发送数据。
鱼找水需要时间
2023/04/06
3K0
elasticsearch 跨索引联合多条件查询
Elasticsearch项目实战,商品搜索功能设计与实现!
在SpringBoot中使用Elasticsearch本文不再赘述,直接参考《mall整合Elasticsearch实现商品搜索》即可。这里需要提一下,对于需要进行中文分词的字段,我们直接使用@Field注解将analyzer属性设置为ik_max_word即可。
macrozheng
2020/04/24
3.9K0
Elasticsearch6.6.x 版本的学习(二)springboot项目整合高级客户端elasticsearch-rest-high-level-client
首先存入一条数据 i like eating and kuing 默认分词器应该将内容分为 “i” “like” “eating” “and” “kuing”
一写代码就开心
2021/09/26
2.8K0
Elasticsearch6.6.x 版本的学习(二)springboot项目整合高级客户端elasticsearch-rest-high-level-client
Elasticsearch之Nested Query nestedQuery查询数组
es是通过符合条件的json记录找出来,本身并不是将数据中的记录filter过滤。es nestedQuery不是过滤的结果,是匹配的这条es记录,所以数组中的其他的记录也会查询出来 1.方法1:可以在程序中对数组中的记录过滤。 2.方法2:在数据初始化的时候,将数据严格查询符合条件的才初始化。
oktokeep
2024/10/09
1830
Elasticsearch Query DSL之Compound queries(复合查询)
本文将重点介绍Elasticsearch Query DSL之Compound queries(复合查询)。
丁威
2019/06/10
1.5K0
SpringBoot中进行elasticSearch查询,使用QueryBuilders构建各类条件查询
BoolQueryBuilder对象使用must方法build,多个and使用多个must
翎野君
2023/07/21
2.1K0
ES进阶 -- Java客户端
1. java集成es快速入门 参照 //快速入门 @Test void testmatchall() throws IOException { //1.准备request SearchRequest request = new SearchRequest("hotel"); //2. 准备dsl request.source().query(QueryBuilders.matchAllQuery());
用户10521079
2023/05/04
1.6K0
ES进阶 -- Java客户端
ElasticSearch 进阶:一文全览各种 ES 查询在 Java 中的实现
哈喽,小伙伴们好。我是狗哥,这篇博文的主题是ES的查询,因此我整理了尽可能齐全的ES查询场景,形成下面的图:
JavaFish
2022/04/18
3.4K0
ElasticSearch 进阶:一文全览各种 ES 查询在 Java 中的实现
【Elasticsearch】黑马旅游案例
启动我们提供的hotel-demo项目,其默认端口是8089,访问http://localhost:8090,就能看到项目页面了:
陶然同学
2023/10/14
4200
【Elasticsearch】黑马旅游案例
【愚公系列】2023年11月 Java教学课程 212-ElasticSearch(批量操作和查询详解)
ElasticSearch的操作指令和描述来源于官方文档和社区中使用广泛的ElasticSearch操作手册。下面这些操作指令是ElasticSearch的基本操作,可以帮助用户进行数据的增删改查等常见操作,以及索引、映射和集群管理等高级操作。
愚公搬代码
2025/06/02
1380
【愚公系列】2023年11月 Java教学课程 212-ElasticSearch(批量操作和查询详解)
ElasticsearchRepository简单用法
1.查询全部 1.1 java esBlogRepositoryl.findAll(); 1.2 es GET /blog/_search { "query": { "match_all": { "boost": 1 } } } 2.模糊查询 2.1 java //fuzziness 即为最多纠正两个字母然后去匹配,默认为 auto(2) FuzzyQueryBuilder fuzzyQueryBuilder = QueryBuilder
DencyCheng
2020/12/07
3.6K0
ElasticSearch 高阶技巧 !
今天我们来来讲解如何在Spring boot的项目中操作Elasticsearch,本章采用的API是官方的Java High Level REST Client v7.9.1。在学习本章以前,你最好已经掌握基本的Java后端开发知识并会使用Spring boot开发框架。由于篇幅的限制,本章只讲解比较常用的代码实现,很多代码可以复用,大家可以在实际项目中举一反三。
微观技术
2023/08/25
5470
ElasticSearch 高阶技巧 !
哇,ElasticSearch多字段权重排序居然可以这么玩
在很多复杂的业务场景下,排序的规则会比较复杂,单一的降序,升序无法满足日常需求。不过 ES 中提供了给文档加权重的方式来排序,还是挺好用的。
猿天地
2020/08/28
3.5K0
java api使用ElastichSearch指南
比如想要addr是beijing的,同时必须满足条件:name是 paxi,或者,phoneNumber是 1234567890
爬蜥
2019/07/09
1.5K0
【Elasticsearch】整合Spring Data Elasticsearch
官方文档:Java High Level REST Client | Java REST Client [6.8] | Elastic
陶然同学
2023/02/24
1.5K0
【Elasticsearch】整合Spring Data Elasticsearch
ElasticSearch-查询
Elasticsearch提供了基于JSON的DSL(Domain Specific Language)来定义查询。常见的查询类型包括:
yuanshuai
2023/11/17
4110
ElasticSearch-查询
ElasticSearch权威指南:深入搜索(上)
在 基础入门 中涵盖了基本工具并对它们有足够详细的描述,这让我们能够开始用 Elasticsearch 搜索数据。 用不了多长时间,就会发现我们想要的更多:希望查询匹配更灵活,排名结果更精确,不同问题域下搜索更具体。
HLee
2021/03/19
4.7K0
ElasticSearch权威指南:深入搜索(上)
Spring全家桶之SpringData——SpringDataElasticSearch
使用 Spring Data 下二级子项目 Spring Data Elasticsearch 进行操作。 支持 POJO 方 法操作 Elasticsearch。相比 Elasticsearch 提供的 API 更加简单更加方便。
时间静止不是简史
2021/03/04
1.8K0
推荐阅读
相关推荐
ElasticSearch进阶:一文全览各种ES查询在Java中的实现
更多 >
交个朋友
加入[数据] 腾讯云技术交流站
获取数据实战干货 共享技术经验心得
加入数据技术工作实战群
获取实战干货 交流技术经验
加入[数据库] 腾讯云官方技术交流站
数据库问题秒解答 分享实践经验
换一批
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档