JAVA使用ElasticSearch查询in和not in的实现方式

2025-05-29 0 23

elasticsearch

elasticsearch是一个基于lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于restful web接口。elasticsearch是用java开发的,并作为apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

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

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

首先看下es bool联合查询的属性:

bool联合查询: must,should,must_not

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

这三个可以这么理解

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

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

?

1

2

3

4

5

6

7

8
boolquerybuilder exersiceboolquery = querybuilders.boolquery();

if (exersiceids != null && exersiceids.size() > 0)

{

for (string exerciseid: exersiceids)

{

exersiceboolquery.mustnot(querybuilders.termquery("id", exerciseid));

}

}

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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对快网idc的支持。如果你想了解更多相关内容请查看下面相关链接

原文链接:https://blog.csdn.net/moneyshi/article/details/78678621

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 JAVA使用ElasticSearch查询in和not in的实现方式 https://www.kuaiidc.com/110628.html

相关文章

发表评论
暂无评论