高亮 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 都加上了前缀。

相关文章
|
消息中间件 数据可视化 Java
Docker Compose:部署SpringBoot应用(含MySQL,Redis,Nacos,RabbitMQ,Nginx)
Docker Compose:部署SpringBoot应用(含MySQL,Redis,Nacos,RabbitMQ,Nginx)
Docker Compose:部署SpringBoot应用(含MySQL,Redis,Nacos,RabbitMQ,Nginx)
|
机器学习/深度学习 存储 人工智能
白话文讲解大模型| Attention is all you need
本文档旨在详细阐述当前主流的大模型技术架构如Transformer架构。我们将从技术概述、架构介绍到具体模型实现等多个角度进行讲解。通过本文档,我们期望为读者提供一个全面的理解,帮助大家掌握大模型的工作原理,增强与客户沟通的技术基础。本文档适合对大模型感兴趣的人员阅读。
1831 121
白话文讲解大模型| Attention is all you need
|
人工智能 自然语言处理 前端开发
SpringBoot + 通义千问 + 自定义React组件:支持EventStream数据解析的技术实践
【10月更文挑战第7天】在现代Web开发中,集成多种技术栈以实现复杂的功能需求已成为常态。本文将详细介绍如何使用SpringBoot作为后端框架,结合阿里巴巴的通义千问(一个强大的自然语言处理服务),并通过自定义React组件来支持服务器发送事件(SSE, Server-Sent Events)的EventStream数据解析。这一组合不仅能够实现高效的实时通信,还能利用AI技术提升用户体验。
1060 2
|
弹性计算 运维 安全
阿里云轻量应用服务器与ECS的区别及选择指南
轻量应用服务器和云服务器ECS(Elastic Compute Service)是两款颇受欢迎的产品。本文将对这两者进行详细的对比,帮助用户更好地理解它们之间的区别,并根据自身需求做出明智的选择。
|
机器学习/深度学习
一文看懂卷积运算(convolution)与互相关运算(cross-correlation)的区别
一文看懂卷积运算(convolution)与互相关运算(cross-correlation)的区别
|
缓存 NoSQL 安全
Redis缓存雪崩、击穿、穿透解释及解决方法,缓存预热,布隆过滤器 ,互斥锁
Redis缓存雪崩、击穿、穿透解释及解决方法,缓存预热,布隆过滤器 ,互斥锁
978 5
|
存储 安全 数据安全/隐私保护
OAuth 2.0 的授权机制
【10月更文挑战第5天】
869 2
|
网络协议 安全 物联网
IPv4 与 IPv6: 理解它们的基本区别
IPv4 与 IPv6: 理解它们的基本区别
4202 0
|
SQL 数据管理 数据库
【安装指南】从零开始:SQL Server 2019与SSMS完美安装攻略!
【安装指南】从零开始:SQL Server 2019与SSMS完美安装攻略!
676 0
|
缓存 资源调度 Kubernetes
阿里云云效产品使用合集之如何将两个独立的代码仓库构建并部署到同一个容器内
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。