前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >elasticsearch 5.x highlight 高亮

elasticsearch 5.x highlight 高亮

作者头像
程裕强
发布2022-05-06 10:54:03
3720
发布2022-05-06 10:54:03
举报
文章被收录于专栏:大数据学习笔记

public static Map<String, Object> search(String key,String index,String type,int start,int row){ //创建查询索引,要查询的索引库为index SearchRequestBuilder builder = getClient().prepareSearch(index); builder.setTypes(type); builder.setFrom(start); builder.setSize(row); //设置查询类型:1.SearchType.DFS_QUERY_THEN_FETCH 精确查询; 2.SearchType.SCAN 扫描查询,无序 builder.setSearchType(SearchType.DFS_QUERY_THEN_FETCH); if(StringUtils.isNotBlank(key)){ // 设置查询关键词 builder.setQuery(QueryBuilders.multiMatchQuery(key, "title","describe")); } //设置是否按查询匹配度排序

builder.setExplain(true);

//设置高亮显示 HighlightBuilder highlightBuilder = new HighlightBuilder().field("*").requireFieldMatch(false); highlightBuilder.preTags("<span style=\"color:red\">"); highlightBuilder.postTags("</span>"); builder.highlighter(highlightBuilder); //执行搜索,返回搜索响应信息 SearchResponse searchResponse = builder.get(); SearchHits searchHits = searchResponse.getHits(); //总命中数 long total = searchHits.getTotalHits(); Map<String, Object> map = new HashMap<String,Object>(); SearchHit[] hits = searchHits.getHits(); map.put("count", total); List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); for (SearchHit hit : hits) { //highlightFields.size=0?? Map<String, HighlightField> highlightFields = hit.getHighlightFields(); //title高亮 HighlightField titleField = highlightFields.get("title"); Map<String, Object> source = hit.getSource(); if(titleField!=null){ Text[] fragments = titleField.fragments(); String name = ""; for (Text text : fragments) { name+=text; } source.put("title", name); } //describe高亮 HighlightField describeField = highlightFields.get("describe"); if(describeField!=null){ Text[] fragments = describeField.fragments(); String describe = ""; for (Text text : fragments) { describe+=text; } source.put("describe", describe); } list.add(source); } map.put("dataList", list); return map; }

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-01-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档