犯得很大的问题

it2025-01-18  13

错误 在请求是报错bitsum在请求提交按钮时 将按钮误用成submit 导致数据提交后就刷新界面 数据还没有被读取到 就结束了api访问导致的bug 报错 http请求显示为cancel 完善后的关于读取jd数据的service层 public List<Map<String ,Object>> SreachPag(String keywork , int PagNo, int PagSize) throws IOException { if (PagNo <= 1) { PagNo = 1; } //条件搜索 SearchRequest searchRequest = new SearchRequest("jd_goods"); SearchSourceBuilder sourceBuilder = new SearchSourceBuilder(); //分页 sourceBuilder.from(PagNo); sourceBuilder.size(PagSize); //精准匹配 // TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery("title", keyword); // sourceBuilder.query(termQueryBuilder); // sourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS)); //match匹配 可以支持中文搜索 MatchQueryBuilder matchQueryBuilder = new MatchQueryBuilder("title", keywork); sourceBuilder.query(matchQueryBuilder); sourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS));//超时 //高亮 HighlightBuilder highlightBuilder = new HighlightBuilder(); highlightBuilder.field("title"); //高亮的字段 highlightBuilder.requireFieldMatch(false);//如果一句里面有多个关键词高亮,则只显示第一个 highlightBuilder.preTags("<span style='color:red'>"); highlightBuilder.postTags("</span>"); sourceBuilder.highlighter(highlightBuilder); //执行搜索 searchRequest.source(sourceBuilder); SearchResponse searchResponse = estHighLevelClient.search(searchRequest, RequestOptions.DEFAULT); //解析结果 ArrayList<Map<String, Object>> list = new ArrayList<>(); for (SearchHit hit : searchResponse.getHits().getHits()) { Map<String, HighlightField> highlightFields = hit.getHighlightFields(); //获取到高亮字段 HighlightField title = highlightFields.get("title"); Map<String, Object> sourceAsMap = hit.getSourceAsMap(); //原来的结果!要在结果里面将高亮置换一下 //解析高亮的字段 将原来的字段换为我们高亮的字段即可 if (title != null) { Text[] fragments = title.fragments(); String n_title = ""; for (Text text : fragments) { n_title += text; } sourceAsMap.put("title", n_title);//高亮字段替换掉原来的内容即可! } list.add(sourceAsMap); } return list; } config配置 @Configuration public class ESConfig { @Bean public RestHighLevelClient estHighLevelClient (){ RestHighLevelClient restHighLevelClient = new RestHighLevelClient( RestClient.builder( new HttpHost(Name.IP,Name.PROT,Name.SECHENM) ) ); return restHighLevelClient; } }
最新回复(0)