高亮 highlight | 学习笔记

简介: 快速学习高亮 highlight

开发者学堂课程【ElasticSearch 入门精讲高亮 highlight学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/631/detail/9997


高亮 highlight


内容介绍:

一、讲义

二、演示


一、讲义

高亮达到的效果可以通过搜索 elasticsearch 进行查看

image.png

查询索引库的时候会有高亮显示

public void testSearch() {

String indices="bigdata";//指的是要搜索的哪一个索引库

SearchRequestBuilder builder=client.prepareSearch(indices)

.setSearchType(SearchType.DEFAULT)

.setFrom(0)

.setsize(5)//设置分页

.addHigh1ightedFie1d("name")//设置高亮字段

.setHighlighterPreTags("<font style='color:red;size=35'>")

.setHighlighterPostTags("</font>");//高亮风格

builder.setQuery(QueryBuilders.fuzzyquery("name","hadoop"));

SearchResponse searchResponse=builder.get();

SearchHits searchHits=searchResponse.getHits();

SearchHit[] hits=searchHits.getHits();

long total=searchHits.getTotalHits();

System.out.printIn("总共条数: "+total);//总共查询到多少条数据

for (SearchHit searchHit:hits){

Map<string,object>source=searchHit.getsource();

Map<string,HighlightField>highlightFields=searchHit.getHighlightFields();

System.out.printIn("------------------");

String name=source.get("name").tostring();

String author=source.get("author").tostring();

System.out.printIn("name="+name);

System.out.printIn("author="+author);

HighlightField highlightField= highlightFields.get("name");

if(highlightField!=null){

Text[] fragments=highlightField.fragments();

name="";

for(Text text:fragments){

name += text.tostring();

}

}

System.out.printInC"name: "+name);

System.out.printIn("author: "+author);

}

}

二、演示

现在要将检索信息 bank 下的 product,name 开头为 s 的显示高亮

如何进行高亮显示?

在桌面上右击新建文本文档,命名为 testHightLight.html,之后编辑输入

<h2>测试<font style="color:red;size=20;" >高亮</font>显示了哦</h2>

之后通过浏览器打开页面

image.png

程序的高亮显示,在 TestES.java 中输入

/**

*测试高亮显示

*

*查询索引库之 bigdata 下的 type 之 product,其中 name 字段中以 s 开头的字段需要高亮显示

*/

public void testHightLighter(){

//步骤:

//1.构建 HighlightBuilder 的实例,设置高亮显示的参数

HightlightBuilder hb = new HighlightBuilder();

hb.field("name"")

.preTags("<font stype='color:red;size=20;>"")

.postTags("</font>");

//2.查询

SearchResponse response = client.prepareSearch(INDEX)

.setTypes( TYPE)

.setFrom(0)

.setSize(1000)

.setQuery(QueryBuilders.wildcardQuery(name: "name", query: s*"))

//设置高亮显示

.highlighter(hb)

.get();

//3.分析结果

for(SearchHit hit: response.getHits()){

Map<String,Object> map = hit.getSourceAsMap();  Map<String,HighlightField> highlightFields = hit.getHighlightFields();

for(Map.Entry<String,HighlightField> fieldEntry: highlightFields.entrySet())Xstring key = fieldEntry.getKey0;

String value = fieldEntry.getValue().fragments()[0].toString();

//替换value(带了高亮显示)

map.put(key,value);

}

//显示

System.out.println(JSON.toJSONString(map));

}

}

运行之后结果应该显示出三个带 s 的 name,

如图

image.png

相关文章
|
6月前
详解element-ui el-table表格中勾选checkbox(selection),高亮当前行高亮某一行(某一行设置特殊的样式)
详解element-ui el-table表格中勾选checkbox(selection),高亮当前行高亮某一行(某一行设置特殊的样式)
|
JavaScript
js字体标红-高亮-自定义高亮-搜索高亮
js字体标红-高亮-自定义高亮-搜索高亮
|
C++
【Qt】实现文本整词高亮
QTextEdit 中显示富文本,整词匹配并高亮
178 0
|
前端开发
CSS按钮高亮的解决方案
CSS按钮高亮的解决方案
108 0
|
数据挖掘
使用 ggcharts 高亮部分内容
使用 ggcharts 高亮部分内容
93 0
|
JavaScript 前端开发
JavaScript实战笔记(四) 选中文本高亮
JavaScript实战笔记(四) 选中文本高亮
270 0
Markdown (CSDN) MD编辑器(二)- 文本样式(更改字体、字体大小、字体颜色、加粗、斜体、高亮、删除线)
Markdown (CSDN) MD编辑器(二)- 文本样式(更改字体、字体大小、字体颜色、加粗、斜体、高亮、删除线)
1110 0
Markdown (CSDN) MD编辑器(二)- 文本样式(更改字体、字体大小、字体颜色、加粗、斜体、高亮、删除线)
|
分布式计算 Hadoop 流计算
高亮 highlight|学习笔记
快速学习高亮 highlight。
167 0
高亮 highlight|学习笔记
|
JavaScript
jquery实现高亮效果-24
jquery实现高亮效果-24
322 0
jquery实现高亮效果-24