public List<lsjzsearch> searchIds(List<String> ids) { NativeSearchQuery query = new NativeSearchQueryBuilder() .withQuery(QueryBuilders.termsQuery("id", ids)) .build(); SearchHits<lsjzsearch> searchHits = elasticsearchTemplate.search(query, lsjzsearch.class); List<lsjzsearch> lsjzsearchList = searchHits.get().map(SearchHit::getContent).collect(Collectors.toList()); return lsjzsearchList; }
时间: 2024-03-29 18:37:55 浏览: 27
这段代码看起来是一个基于Elasticsearch的搜索函数,它接收一个字符串列表 ids 作为参数,然后使用 Elasticsearch 的查询构建器 NativeSearchQueryBuilder 来构建一个查询,查询条件是termsQuery("id", ids),即查询 id 值在 ids 中的文档。然后使用 ElasticsearchTemplate 执行这个查询,将结果集封装成一个List<lsjzsearch>类型的列表并返回。其中,lsjzsearch 可能是一个文档类型,elasticsearchTemplate 可能是一个 Elasticsearch 的操作模板类。
相关问题
优化下面的代码 public Page<FinanceCodeDTO> selectFinanceCodePage(FinanceCodeListVO financeCodeListVO) { //根据类型关联查询数据信息 Page<FinanceCodeDTO> page = new Page<>(financeCodeListVO.getPageNo(),financeCodeListVO.getPageSize()); Page<FinanceCodeDTO> dtoPage = financeCodeMapper.financeCodeList(page, financeCodeListVO); List<FinanceCodeDTO> dtos = dtoPage.getRecords(); List<String> contractIds = dtos.stream().map(FinanceCodePO::getContractIds).collect(Collectors.toList()); List<Integer> idList = new ArrayList<>(); contractIds.forEach(ids -> { if (ToolUtil.isNotEmpty(ids) && !ToolUtil.equals("[]",ids)){ List<Integer> list = JSONObject.parseArray(ids, Integer.class); idList.addAll(list); } }); if (ToolUtil.isNotEmpty(idList)){ CustomerContractPO customerContractPO = new CustomerContractPO(); List<CustomerContractPO> customerContractPOS = customerContractPO.selectList(new QueryWrapper<>(customerContractPO).lambda().in(CustomerContractPO::getCustomerContractId, idList)); Map<Integer, String> map = customerContractPOS.stream().collect(Collectors.toMap(CustomerContractPO::getCustomerContractId, CustomerContractPO::getContractName)); dtos.forEach(dto ->{ if (ToolUtil.isNotEmpty(dto.getContractIds())&& !ToolUtil.equals("[]",dto.getContractIds())){ List<Integer> list = JSONObject.parseArray(dto.getContractIds(), Integer.class); List<String> names = new ArrayList<>(); list.forEach(id ->{ names.add(map.get(id)); }); dto.setContractName(String.join(",",names)); } }); dtoPage.setRecords(dtos); } return dtoPage ; }
&& ids.contains(",")) { String[] idsArr = ids.split(","); Arrays.stream(idsArr).forEach(id -> { idList.add(Integer.parseInt(id)); }); } }); List<ContractDTO> contractDTOList = contractMapper.selectContractByIdList(idList); dtos.forEach(dto -> { dto.setContractList(contractDTOList); }); return dtoPage; }答:根据给定的代码,优化的思路是把contractIds通过Arrays.stream()和Integer.parseInt()转换为idList,并通过contractMapper.selectContractByIdList()获取contractDTOList,最后把contractDTOList赋给dtos中每个dto对象。
private Specification<MeetingManage> getSpecification(final MeetingManage queryModel) { return new Specification<MeetingManage>() { @Override public Predicate toPredicate(Root<MeetingManage> root, CriteriaQuery<?> query, CriteriaBuilder cb) { List<Predicate> list = new ArrayList<Predicate>(); if (StringUtils.isNotBlank(queryModel.getMeetingId())) { String[] ids = queryModel.getMeetingId().split(","); CriteriaBuilder.In<String> in = cb.in(root.get("meetingId").as(String.class)); for (String st : ids) { in.value(st); } list.add(in); } list.add(cb.equal(root.get("isVal").as(String.class), "Y")); Predicate[] p = new Predicate[list.size()]; return cb.and(list.toArray(p)); } }; }
这段代码使用了 JPA 的 Criteria API 实现了一个动态查询,根据传入的 MeetingManage 对象生成查询条件。查询条件包括两个部分:一个是根据 MeetingManage 中的 meetingId 属性生成的 in 查询,另一个是根据 MeetingManage 中的 isVal 属性生成的 equal 查询。最后使用 and 进行连接,生成最终的查询条件,并返回 Predicate 对象。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![java](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)