高亮 highlight|学习笔记

简介: 快速学习高亮 highlight。

开发者学堂课程【ElasticSearch 最新快速入门教程高亮 highlight】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/642/detail/10661


高亮 highlight

 

主要内容

一、高亮显示

二、程序如何高亮显示

 

一、高亮形式

1、高亮显示指的是当查询索引库时,索引词就会高亮显示。比如百度输入 elasticsearch

image.png

红色部分就是高亮信息

2、ES 查询详解之高亮 highlight

public void testsearch()

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

searchRequestBuilder builder =client.preparesearch(indices) .setsearchType(SearchType.DEFAULT)

.setFrom(0)

.setsize(5)    //设置分页

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

.setHighlighterPreTags("

.setHighlighterpostTags("");  //高亮风格

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 source = searchHit.getsource(); Map highlightFields=

searchHit.getHighlightFields();

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

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

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

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

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

HighlightField  highlightField =

HighlightField.get(“name”)

if (highlightField !=null) {

Text[ ]fragments = highlightField.fragments();  name ="";

for (Text text : fragments)

name += text.tostring();

{

}

System.out.print1n("name:"+ name);

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

}

}

3、接下来检索 bank 里的 product,name 会高亮显示出来,加上前缀和后缀。

下面看一下效果,电脑桌面右键-新建-文本文件,文件后缀一般是html,然后编辑一下:

<h2>测试:red;size=20;”>高亮 显示了哦! 

接下来用浏览器打开页面

image.png

这样高亮二字就高亮显示了,和上面的百度搜索界面是类似的。

 

二、程序如何高亮显示

*测试高亮显示

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

@Test

public void testHightLighter() {

//步骤:

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

HighlightBuilder hb = new HighlightBuilder();

hb.field(‘”name”)

.preTage(“”)

.postTage(“”);

//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 map = hit.getSourceAsMap();

Map highlightFields = hit.getHighlightFields();

for(Map.Entry fieldEntry: highlightFields.entrySet()){

String key = fieldEntry.getKey();

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

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

map.put(key,value);

//显示结果

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

*测试一下会不会高亮显示,按照设置三个以 s 开头的满足条件

image.png

那么 name 这个字段就会高亮显示,加前缀和后缀,只有 name 这个字段高亮显示,别的正常显示

image.png

storm、sqoop、Speak 都加上了前缀。

相关文章
|
20天前
markdown字体大小颜色样式详解
【4月更文挑战第10天】Markdown不直接支持字体样式设置,但可通过HTML标签实现。如用`<font face="字体名">`改变字体,`<font color=颜色值>`改变颜色,`<font size=数字>`调整大小。组合使用如`<font face="黑体" color=green size=5>`可同时设置。注意并非所有Markdown解析器都支持这些语法,使用前需查阅解析器文档。
19 1
|
9月前
|
前端开发
CSS 文本阴影 text-shadow 悬停效果
CSS 文本阴影 text-shadow 悬停效果
43 0
|
6月前
|
SQL JavaScript
markdown字体大小颜色样式
markdown字体大小颜色样式
|
8月前
|
JavaScript
js字体标红-高亮-自定义高亮-搜索高亮
js字体标红-高亮-自定义高亮-搜索高亮
|
9月前
|
C++
【Qt】实现文本整词高亮
QTextEdit 中显示富文本,整词匹配并高亮
95 0
|
10月前
|
前端开发
CSS按钮高亮的解决方案
CSS按钮高亮的解决方案
79 0
|
12月前
|
数据挖掘
使用 ggcharts 高亮部分内容
使用 ggcharts 高亮部分内容
70 0
Markdown (CSDN) MD编辑器(二)- 文本样式(更改字体、字体大小、字体颜色、加粗、斜体、高亮、删除线)
Markdown (CSDN) MD编辑器(二)- 文本样式(更改字体、字体大小、字体颜色、加粗、斜体、高亮、删除线)
888 0
Markdown (CSDN) MD编辑器(二)- 文本样式(更改字体、字体大小、字体颜色、加粗、斜体、高亮、删除线)
|
前端开发
如何修改 Typora 「高亮」的颜色
Typora 有一个「高亮」的格式,类似于荧光笔,但是感觉默认的颜色偏亮,看久了不舒服,所以利用修改主题文件的方式来自定义颜色。
688 1
如何修改 Typora 「高亮」的颜色
|
分布式计算 Hadoop 开发者
高亮 highlight | 学习笔记
快速学习高亮 highlight
102 0
高亮 highlight | 学习笔记