java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > elasticsearch查询in和not in的实现方式

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

作者:执笔记忆的空白

今天小编就为大家分享一篇关于JAVA使用Elasticsearch查询in和not in的实现方式,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

ElasticSearch

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

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

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

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

bool联合查询: must,should,must_not

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

这三个可以这么理解

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

    BoolQueryBuilder exersiceBoolQuery = QueryBuilders.boolQuery();
    if (exersiceIds != null && exersiceIds.size() > 0)
    {
      for (String exerciseId: exersiceIds)
      {
        exersiceBoolQuery.mustNot(QueryBuilders.termQuery("id", exerciseId));
      }
    }

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

总结

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

您可能感兴趣的文章:
阅读全文