Advertisement

ElasticSearch多条件复杂查询实现

阅读量:

前面实现方式和但条件一致

查询代码区别如下

复制代码
 //配药列表显示

    
 //        List<RjHospitalization> selectlist = RjHospitalizationMapper.selectlist();
    
 //        System.out.println(selectlist);
    
  
    
 //        List<RjHospitalizationDto> rjHospitalizationDtos = IRjHospitalizationService.selectlistIRjHospitalization();
    
 //        System.out.println(rjHospitalizationDtos);
    
 //       //讲数据赛入es中
    
 //        List<DrugEs> drugEs = drugMapper.selectDrugFromES();
    
 //        drugEsRepostitory.saveAll(drugEs);
    
  
    
 //      //
    
 //        MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery("drugName", "白云"); //math 查询
    
     FieldSortBuilder sortBuilder = SortBuilders.fieldSort("createtime").order(SortOrder.DESC); // createtime 倒序
    
 //        PageRequest pageRequest = PageRequest.of(1, 2);         // 分页,注意这里跟 from,to 意义不一样,page是第几页
    
 //
    
 //        NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder();
    
 //        nativeSearchQueryBuilder.withQuery(matchQueryBuilder);
    
     nativeSearchQueryBuilder.withSort(sortBuilder);
    
 //        nativeSearchQueryBuilder.withPageable(pageRequest);
    
 //        NativeSearchQuery nativeSearchQuery = nativeSearchQueryBuilder.build();
    
    drugEsRepostitory.search(nativeSearchQuery, DrugEs.class, IndexCoordinates.of("rj_drug"/*索引名*/));
    
 //        drugEsRepostitory.search(nativeSearchQuery,IndexCoordinates)
    
 //        drugEsRepostitory.search(nativeSearchQuery,)
    
  
    
 //        TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery("drugId", 2);
    
 //        MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery("drugName", "白药");
    
 //        NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder();
    
 //        nativeSearchQueryBuilder.withQuery(QueryBuilders.boolQuery().must(matchQueryBuilder).must(termQueryBuilder));//and
    
 //        nativeSearchQueryBuilder.withQuery(QueryBuilders.boolQuery().should(matchQueryBuilder).should(termQueryBuilder));//或者
    
 //        nativeSearchQueryBuilder.withPageable(PageRequest.of(0,2));
    
 //        NativeSearchQuery build = nativeSearchQueryBuilder.build();
    
 //        SearchHits<DrugEs> rj_drug = elasticsearchOperations.search(build, DrugEs.class, IndexCoordinates.of("rj_drug"));
    
 //        Iterator<SearchHit<DrugEs>> iterator = rj_drug.iterator();
    
 //        while (iterator.hasNext()){
    
 //            SearchHit<DrugEs> next = iterator.next();
    
 //            System.out.println(next.getContent());
    
 //    }
    
     }
    
     }

注释里面标注了或者和and那两行的区别

网站链接

[elasticsearch(ES)在SpringBoot中的复杂查询(多条件分页查询以及聚合查询)_尺规作图的博客-博客_springboot 整合es多条件]( "elasticsearchES在SpringBoot中的复杂查询(多条件分页查询以及聚合查询)_尺规作图的博客-博客_springboot 整合es多条件")

全部评论 (0)

还没有任何评论哟~