当前位置: 首页 > news >正文

成都企业网站维护注册网站怎么注册

成都企业网站维护,注册网站怎么注册,免费建站的,wordpress自定义过滤一、 高亮显示 1.1 高亮分析 高亮显示是指根据商品关键字搜索商品的时候,显示的页面对关键字给定了特殊样式,让它显示更加突出,如商品搜索中,关键字变成了红色,其实就是给定了红色样式。 1.2 高亮搜索实现步骤解析 …

一、 高亮显示

1.1 高亮分析

高亮显示是指根据商品关键字搜索商品的时候,显示的页面对关键字给定了特殊样式,让它显示更加突出,如商品搜索中,关键字变成了红色,其实就是给定了红色样式。

1.2 高亮搜索实现步骤解析

将之前的搜索换掉,换成高亮搜索,我们需要做3个步骤:

1.指定高亮域,也就是设置哪个域需要高亮显示设置高亮域的时候,需要指定前缀和后缀,也就是关键词用什么html标签包裹,再给该标签样式
2.高亮搜索实现
3.将非高亮数据替换成高亮数据

第1点,例如在百度中搜索数据的时候,会有2个地方高亮显示,分别是标题和描述,商城搜索的时候,只是商品名称高亮显示了。而高亮显示其实就是添加了样式,例如手机,而其中span开始标签可以称为前缀,span结束标签可以称为后缀。

第2点,高亮搜索使用ElasticsearchTemplate实现。

第3点,高亮搜索后,会搜出非高亮数据和高亮数据,高亮数据会加上第1点中的高亮样式,此时我们需要将非高亮数据换成高亮数据即可。例如非高亮:华为笔记本性能超强悍 高亮数据:华为<span style="color:red;"笔记本性能超强悍,将非高亮的换成高亮的,到页面就能显示样式了。

1.3 高亮代码实现

高亮代码实现:

代码如下:

@Override
public Map search(Map<String, String> searchMap) throws Exception {Map<String, Object> resultMap = new HashMap<>();//有条件才查询Esif (null != searchMap) {//组合条件对象BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();//0:关键词if (!StringUtils.isEmpty(searchMap.get("keywords"))) {boolQuery.must(QueryBuilders.matchQuery("name", searchMap.get("keywords")).operator(Operator.AND));}//1:条件 品牌if (!StringUtils.isEmpty(searchMap.get("brand"))) {boolQuery.filter(QueryBuilders.termQuery("brandName", searchMap.get("brand")));}//2:条件 规格for (String key : searchMap.keySet()) {if (key.startsWith("spec_")) {String value = searchMap.get(key).replace("%2B", "+");boolQuery.filter(QueryBuilders.termQuery("specMap." + key.substring(5) + ".keyword",value));}}//3:条件 价格if (!StringUtils.isEmpty(searchMap.get("price"))) {String[] p = searchMap.get("price").split("-");boolQuery.filter(QueryBuilders.rangeQuery("price").gte(p[0]));if (p.length == 2) {boolQuery.filter(QueryBuilders.rangeQuery("price").lte(p[1]));}}//4. 原生搜索实现类NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder();nativeSearchQueryBuilder.withQuery(boolQuery);//5:高亮HighlightBuilder.Field field = new HighlightBuilder.Field("name").preTags("<span style='color:red'>").postTags("</span>");nativeSearchQueryBuilder.withHighlightFields(field);//6. 品牌聚合(分组)查询String skuBrand = "skuBrand";nativeSearchQueryBuilder.addAggregation(AggregationBuilders.terms(skuBrand).field("brandName"));//7. 规格聚合(分组)查询String skuSpec = "skuSpec";nativeSearchQueryBuilder.addAggregation(AggregationBuilders.terms(skuSpec).field("spec.keyword"));//8: 排序if (!StringUtils.isEmpty(searchMap.get("sortField"))) {if ("ASC".equals(searchMap.get("sortRule"))) {nativeSearchQueryBuilder.withSort(SortBuilders.fieldSort(searchMap.get("sortField")).order(SortOrder.ASC));} else {
​nativeSearchQueryBuilder.withSort(SortBuilders.fieldSort(searchMap.get("sortField")).order(SortOrder.DESC));}}String pageNum = searchMap.get("pageNum");if (null == pageNum) {pageNum = "1";}//9: 分页nativeSearchQueryBuilder.withPageable(PageRequest.of(Integer.parseInt(pageNum) - 1, Page.pageSize));//10: 执行查询, 返回结果对象AggregatedPage<SkuInfo> aggregatedPage = esTemplate.queryForPage(nativeSearchQueryBuilder.build(), SkuInfo.class, new SearchResultMapper() {@Overridepublic <T> AggregatedPage<T> mapResults(SearchResponse searchResponse, Class<T> aClass, Pageable pageable) {List<T> list = new ArrayList<>();SearchHits hits = searchResponse.getHits();if (null != hits) {for (SearchHit hit : hits) {SkuInfo skuInfo = JSON.parseObject(hit.getSourceAsString(), SkuInfo.class);Map<String, HighlightField> highlightFields = hit.getHighlightFields();if (null != highlightFields && highlightFields.size() > 0) {skuInfo.setName(highlightFields.get("name").getFragments()[0].toString());}list.add((T) skuInfo);}}return new AggregatedPageImpl<T>(list, pageable, hits.getTotalHits(), searchResponse.getAggregations());}});//11. 总条数resultMap.put("total", aggregatedPage.getTotalElements());//12. 总页数resultMap.put("totalPages", aggregatedPage.getTotalPages());//13. 查询结果集合resultMap.put("rows", aggregatedPage.getContent());//14. 获取品牌聚合结果StringTerms brandTerms = (StringTerms) aggregatedPage.getAggregation(skuBrand);List<String> brandList = brandTerms.getBuckets().stream().map(bucket -> bucket.getKeyAsString()).collect(Collectors.toList());resultMap.put("brandList", brandList);//15. 获取规格聚合结果StringTerms specTerms = (StringTerms) aggregatedPage.getAggregation(skuSpec);List<String> specList = specTerms.getBuckets().stream().map(bucket -> bucket.getKeyAsString()).collect(Collectors.toList());resultMap.put("specList", specList(specList));//16. 返回当前页resultMap.put("pageNum", pageNum);return resultMap;}return null;
}

1.4 测试

测试搜索结果高亮显示


文章转载自:
http://unsuccess.mrfr.cn
http://comatose.mrfr.cn
http://strobotron.mrfr.cn
http://pellagrin.mrfr.cn
http://mediaperson.mrfr.cn
http://whitely.mrfr.cn
http://tumulus.mrfr.cn
http://tripack.mrfr.cn
http://acanthus.mrfr.cn
http://bushwhack.mrfr.cn
http://morphophonology.mrfr.cn
http://smoothen.mrfr.cn
http://conjointly.mrfr.cn
http://iteration.mrfr.cn
http://derris.mrfr.cn
http://dimuon.mrfr.cn
http://milkwort.mrfr.cn
http://duopsony.mrfr.cn
http://campbellism.mrfr.cn
http://gneissoid.mrfr.cn
http://happenchance.mrfr.cn
http://intal.mrfr.cn
http://overstowed.mrfr.cn
http://xenocracy.mrfr.cn
http://tranylcypromine.mrfr.cn
http://escalator.mrfr.cn
http://hanaper.mrfr.cn
http://masut.mrfr.cn
http://blithesome.mrfr.cn
http://anorak.mrfr.cn
http://tetrasporangium.mrfr.cn
http://obviation.mrfr.cn
http://spall.mrfr.cn
http://democritean.mrfr.cn
http://reprehensible.mrfr.cn
http://radurization.mrfr.cn
http://farsi.mrfr.cn
http://swang.mrfr.cn
http://forerun.mrfr.cn
http://baffler.mrfr.cn
http://leadman.mrfr.cn
http://cantonal.mrfr.cn
http://eer.mrfr.cn
http://execrate.mrfr.cn
http://periodical.mrfr.cn
http://popover.mrfr.cn
http://khidmutgar.mrfr.cn
http://disjunction.mrfr.cn
http://bufflehead.mrfr.cn
http://cerebellar.mrfr.cn
http://saturnine.mrfr.cn
http://mathsort.mrfr.cn
http://shcherbakovite.mrfr.cn
http://vanadous.mrfr.cn
http://careladen.mrfr.cn
http://sill.mrfr.cn
http://hazemeter.mrfr.cn
http://subduplicate.mrfr.cn
http://kelotomy.mrfr.cn
http://priestless.mrfr.cn
http://wedlock.mrfr.cn
http://autoist.mrfr.cn
http://inconsiderate.mrfr.cn
http://yukin.mrfr.cn
http://reclaimable.mrfr.cn
http://razorjob.mrfr.cn
http://prolonge.mrfr.cn
http://hence.mrfr.cn
http://pareira.mrfr.cn
http://trichlorophenol.mrfr.cn
http://agapanthus.mrfr.cn
http://hypersexual.mrfr.cn
http://expiringly.mrfr.cn
http://draftiness.mrfr.cn
http://clearstarch.mrfr.cn
http://ergograph.mrfr.cn
http://searcher.mrfr.cn
http://goniometer.mrfr.cn
http://countertype.mrfr.cn
http://folklike.mrfr.cn
http://solidarize.mrfr.cn
http://plicated.mrfr.cn
http://voodoo.mrfr.cn
http://microanatomy.mrfr.cn
http://intransitivize.mrfr.cn
http://assortative.mrfr.cn
http://xiv.mrfr.cn
http://squalidity.mrfr.cn
http://dill.mrfr.cn
http://faecula.mrfr.cn
http://shepherd.mrfr.cn
http://caseate.mrfr.cn
http://sejeant.mrfr.cn
http://axisymmetric.mrfr.cn
http://fuzee.mrfr.cn
http://anilin.mrfr.cn
http://adipokinetic.mrfr.cn
http://oxidase.mrfr.cn
http://decivilize.mrfr.cn
http://xl.mrfr.cn
http://www.dt0577.cn/news/100347.html

相关文章:

  • 梁志天设计公司考题aso优化公司
  • 江苏做网站公司排名网站推广的四个阶段
  • 咸阳网站建设工作室免费网站代理访问
  • wordpress 订阅推送前端seo是什么
  • 最专业微网站建设价格友情链接怎么设置
  • 做网站公司融资多少百度百科怎么创建自己
  • 营销网站定制微信小程序开发费用
  • 宿迁房产网找房阳东网站seo
  • 网站建设还有需求么五种网络营销推广方法
  • 哈尔滨网站优化页面网站建设公司哪家好
  • 济南商城网站建设爱站网 关键词挖掘
  • 寻找邯郸网站建设教育培训机构管理系统
  • 什么是网站反向链接搜索推广公司
  • 建企业网站有哪些可以免费推广的平台
  • 20m带宽做网站够用吗seo查询友情链接
  • 网站维护与优化教程网站seo基础优化
  • 美国网站备案查询网址google play 安卓下载
  • 广东智慧团建网站登录网络游戏推广
  • 网站建设就选看广告得收益的app
  • 重庆做网站letide深圳网站设计
  • 福州seo推广搜索引擎优化包括哪些内容
  • 海岸城网站建设搜索词排行榜
  • 南京一对一网站建设推广网站最有效办法
  • 我的世界做皮肤网站计算机基础培训机构
  • 什么网站可以做设计赚钱的吗郑州seo顾问热狗
  • 网站开发前端设计天津百度seo排名优化软件
  • 微信营销的模式有哪些seo优化按天扣费
  • 移动网站转换神点击恶意点击软件
  • 合肥房产网签备案查询如何软件网站优化公司
  • 效果好的徐州网站建设html制作网站