1.导入es依赖 我使用的es是7.13.0的版本

<properties><elasticsearch.version>7.13.0</elasticsearch.version>
</properties>
<dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>${elasticsearch.version}</version><exclusions><exclusion><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId></exclusion><exclusion><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-client</artifactId></exclusion></exclusions>
</dependency>
<dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>${elasticsearch.version}</version>
</dependency>
<dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-client</artifactId><version>${elasticsearch.version}</version><exclusions><exclusion><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId></exclusion></exclusions>
</dependency>
<!--springboot-->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- fast json-->
<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId>
</dependency>
2.直接上代码
import com.alibaba.fastjson.JSONObject;
import org.apache.http.HttpHost;
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestClientBuilder;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.builder.SearchSourceBuilder;/*** @author likk* @create 2021-11-22 18:31*/
public class SearchTest {public static void main(String[] args) {try {//通过ES提供的 构造器 来建立起和ES之间的远程连接RestClientBuilder restClientBuilder =RestClient.builder(new HttpHost("192.168.22.130",19200,"http"));//创建高层对象准备操作ES创建的连接RestHighLevelClient restHighLevelClient = new RestHighLevelClient(restClientBuilder);//搜索资源构造器SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();//创建复合查询条件对象BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();//如以下条件:查询名字中有李四的并且年龄必须大于20的BoolQueryBuilder must = boolQueryBuilder.should(QueryBuilders.matchQuery("name", "张三")).must(QueryBuilders.matchQuery("age", 18));//需要条件SearchSourceBuilder query = searchSourceBuilder.query(must);//创建一个SearchRequest,查询的请求对象SearchRequest request = new SearchRequest("aa").source(query);//得到了一个搜索响应对象SearchResponse search = restHighLevelClient.search(request, RequestOptions.DEFAULT);SearchHit[] hits = search.getHits().getHits();for (SearchHit hit : hits) {String str = hit.toString();//转换成JSON格式JSONObject jsonObject = JSONObject.parseObject(str);JSONObject source = jsonObject.getJSONObject("_source");String name = source.getString("name");Integer age = source.getInteger("age");System.out.println("name:"+name+","+"age:"+age);}}catch (Exception e){e.printStackTrace();}}
}
3.输出结果
name:张三,age:18
name:张三,age:18

java代码实现一个简单ES条件查询相关推荐

  1. java程序 购物车_用java代码写一个简单的网上购物车程序

    1 需求:1.写一个商品类,有商品编号.商品名称.商品分类.商品单价属性.2.写一个商品条目信息类,有商品和数量两个属性,有商品总价格方法.2 3 3.写一个购物车类,有添加商品方法.查看订单信息,删 ...

  2. C++ 容器的综合应用的一个简单实例——文本查询程序

    [0. 需求] 最近在粗略学习<C++ Primer 4th>的容器内容,关联容器的章节末尾有个很不错的实例. 通过实现一个简单的文本查询程序,希望能够对C++的容器学习有更深的理解. 由 ...

  3. 基于 Roslyn 实现一个简单的条件解析引擎

    基于 Roslyn 实现一个简单的条件解析引擎 Intro 最近在做一个勋章的服务,我们想定义一些勋章的获取条件,满足条件之后就给用户颁发一个勋章,定义条件的时候会定义需要哪些参数,参数的类型,获取勋 ...

  4. 用java设计实现一个简单的动作冒险类游戏

    用java设计实现一个简单的动作冒险类游戏 1.背景 这是java老师布置的本周作业,具体题目截图如下 2.分析 在UML图已经给出的前提下,此作业很容易.自己在此基础上,加了个简单的界面设计和玩家设 ...

  5. html做成绩查询,一个简单的成绩查询系统

    一个简单的成绩查询系统 作者:未知    文章来源:www.jspcn.net 发布日期:2005年01月19日 作者:Javazealot 先建一个数据库(std.mdb):其中有两个表 1.pw( ...

  6. java设计游戏_用java设计实现一个简单的动作冒险类游戏

    用java设计实现一个简单的动作冒险类游戏 1.背景 这是java老师布置的本周作业,具体题目截图如下 2.分析 在UML图已经给出的前提下,此作业很容易.自己在此基础上,加了个简单的界面设计和玩家设 ...

  7. java动作游戏教程_用java设计实现一个简单的动作冒险类游戏

    用java设计实现一个简单的动作冒险类游戏 1.背景 这是java老师布置的本周作业,具体题目截图如下 2.分析 在UML图已经给出的前提下,此作业很容易.自己在此基础上,加了个简单的界面设计和玩家设 ...

  8. 用Java写的一个简单的扑克牌魔术

    一个用Java写了的简单的扑克牌魔术 一个用Java代码写的简单的扑克牌魔术,就是常见的在心里记一张牌,然后问你两次范围就知道答案,好像原理有点像二进制,小时候大人用这个魔术逗小孩开心,10几年了,原 ...

  9. 使用Flutter编写一个简单的天气查询App

    使用Flutter编写一个简单的天气查询App Flutter项目目录分析 入口函数 home:主页面 编写天气应用 网络请求 数据解析 布局编写 Flutter里基础的Widget 上 中 下 Fl ...

最新文章

  1. 编写程序实验两个数的加减结果的判断_实验一 两个多字节数的加减运算 -
  2. NME的GLSL支持情况
  3. JS发送跨域Post请求出现两次请求的解决办法
  4. 系统调用syscall---用户态切换到内核态的唯一途径
  5. orcale 之 集合操作
  6. Java文件类String [] list(FilenameFilter fnf)方法,带示例
  7. 牛客网——约数的个数
  8. html5画安卓机器人,HTML5用户笔画形状检测机器人
  9. 别再说Python简单!
  10. Delphi 正则表达式语法(2): 或者与重复
  11. C++ 类的多态四(虚析构函数的重要性)
  12. 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。
  13. Python学习笔记 之 函数进阶
  14. java安装包_Java6 Update
  15. 淘宝/天猫优惠券获取API 接口
  16. PYTHON2.day14
  17. Nginx安装SSL证书
  18. 免费备案查询API,支持通过主办单位名称查询备案信息
  19. 十分感谢--致谢好友的
  20. 数字拼图java小程序_JS写的数字拼图小游戏代码[学习参考]

热门文章

  1. 硬件:如何选择固态硬盘
  2. cocos2d: fullPathForFilename: No file found at resource/Player.png. Possible missing file.
  3. reactor 模型
  4. Context.managedQuery()和context.getContentResolver()获取Cursor关闭注意事项
  5. JDBC的七个步骤:
  6. java需注意的一些东西
  7. 论文快速降重的一点实用性见解(仅供参考)
  8. 场景检测:面片、光影和物理属性
  9. 深圳-想说爱你不容易(爱一下子与爱一辈子)
  10. cocos2dx3.x物理引擎的碰撞检测