ElasticSearch6.x Java API中的and、or和not

ElasticSearch Java API 官网: https://www.elastic.co/guide/en/elasticsearch/reference/6.1/getting-started.html

ElasticSearch 过滤条件,类似于SQL中的and、or、not

demo如下:

[java]  view plain  copy
  1.               //搜索内容设置>>>>>>>>>>>>>>>>>>>>>>  
  2. //索引"student_manage"是索引"student"、"class"、"course_info"共同的别名  
  3. SearchRequestBuilder searchRequestBuilder = client.prepareSearch("student_manage");  
  4. //searchRequestBuilder.setTypes(type);  
  5. searchRequestBuilder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH);  
  6. ......  
  7.   
  8. //开始过滤>>>>>>>>>>>>>>>>>>>>>>  
  9.    //************过滤条件中,must相当于and,should相当于or,must_not相当于not*****************//  
  10. //过滤条件1  
  11. org.elasticsearch.index.query.QueryBuilder postFilter1= QueryBuilders  
  12.         .boolQuery()  
  13.         .must(QueryBuilders.termsQuery("_index""student"))  
  14.         .must(QueryBuilders.termsQuery("sex""male"))  
  15.         .must(QueryBuilders.termsQuery("age""16","17"));  
  16. //过滤条件2  
  17. org.elasticsearch.index.query.QueryBuilder postFilter2= QueryBuilders  
  18.         .boolQuery()  
  19.         .must(QueryBuilders.termsQuery("_index""class"))  
  20.         .must(QueryBuilders.termsQuery("type""math"))  
  21.         .must(QueryBuilders.boolQuery().should(QueryBuilders.termsQuery("num""6","8")));  
  22. //过滤条件3  
  23. org.elasticsearch.index.query.QueryBuilder postFilter3= QueryBuilders  
  24.         .boolQuery()  
  25.         .must(QueryBuilders.termsQuery("_index""course_info"))  
  26.         .must(QueryBuilders.termsQuery("isopen""1"))  
  27.         .must(QueryBuilders.termsQuery("status""2"))  
  28.         .must(QueryBuilders.termsQuery("grade""2"));  
  29. //整合三者过滤条件(OR)  
  30. org.elasticsearch.index.query.QueryBuilder postFilterBool =QueryBuilders.boolQuery()  
  31.         .should(postFilter1)  
  32.         .should(postFilter2)  
  33.         .should(postFilter3);  
  34. searchRequestBuilder.setPostFilter(postFilterBool);  
  35. //执行搜索>>>>>>>>>>>>>>>>>>>>>>  
  36. SearchResponse res = searchRequestBuilder.execute().actionGet();  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值