Java连接Elasticsearch6.xxx 代码高亮显示篇四
1、代码高亮显示
/**** 测试代码高亮显示 * @throws Exception*/@Testpublic void heightCode() throws Exception{//1、获取客户端连接TransportClient client = ESTools.getTransportClient();//2、代码高亮设置HighlightBuilder highlightBuilder=new HighlightBuilder();highlightBuilder.preTags("<code>");highlightBuilder.postTags("</code>");highlightBuilder.field("name");//3、构造查询条件:matchQueryQueryBuilder builder = QueryBuilders.matchQuery("name","java开发");//4、执行查询SearchResponse response = client.prepareSearch("book").setQuery(builder).highlighter(highlightBuilder) //加入代码高亮.setFetchSource(new String[]{"name","studymodel"}, null) //过滤源字段.get();//返回查询结果SearchHits hits = response.getHits();for (SearchHit searchHit : hits) {System.out.println(searchHit.getSourceAsString());System.out.println(searchHit.getHighlightFields()); //输出代码高亮片段}//关闭客户端client.close();}
{"studymodel":"2020","name":"Bootstrap开发框架"}
{name=[name], fragments[[Bootstrap<code>开</code><code>发</code>框架]]}
{"studymodel":2018,"name":"spring开发框架"}
{name=[name], fragments[[spring<code>开</code><code>发</code>框架]]}
{"studymodel":2020,"name":"java实战"}
{name=[name], fragments[[<code>java</code>实战]]}
{"studymodel":2020,"name":"java实战001"}
{name=[name], fragments[[<code>java</code>实战001]]}
2、实战:获取高亮以及最佳片段信息代码实现
/**** 高亮显示 * @throws Exception*/@Testpublic void heightCode() throws Exception{//1、获取客户端连接TransportClient client = ESTools.getTransportClient();//2、代码高亮设置HighlightBuilder highlightBuilder=new HighlightBuilder();highlightBuilder.preTags("<span style='color:red'>");highlightBuilder.postTags("</span>");highlightBuilder.field("name");//3、构造查询条件:matchQueryQueryBuilder builder = QueryBuilders.matchQuery("name","java开发");//4、执行查询SearchResponse response = client.prepareSearch("book").setQuery(builder).highlighter(highlightBuilder) //加入代码高亮.setFetchSource(new String[]{"name","studymodel"}, null) //过滤源字段.get();//返回查询结果SearchHits hits = response.getHits();//匹配到的总记录数long totalHits = hits.getTotalHits();System.out.println("记录数=="+totalHits);List<UIndex> list = new ArrayList<>();//得到匹配度高的文档SearchHit[] searchHits = hits.getHits();for (SearchHit hit : searchHits) {UIndex u = new UIndex();//源文档内容Map<String, Object> sourceAsMap = hit.getSourceAsMap();//System.out.println(sourceAsMap);String id = (String) sourceAsMap.get("id");String name = (String) sourceAsMap.get("name");HighlightField highlightField = hit.getHighlightFields().get("name");System.out.println(highlightField);if(highlightField==null){u.setName(name);}else{u.setName(hit.getHighlightFields().get("name").fragments()[0].toString());}u.setId(id);//添加至maplist.add(u);}System.out.println(list);//关闭客户端client.close();}
完整四篇实列代码,可根据需求,整合到SSM中,实现ES搜索引擎。
- 后续还会有Spring Boot整合ES的实战文章,请关注…
Java连接Elasticsearch6.xxx 代码高亮显示篇四相关推荐
- Java连接Elasticsearch6.xxx 环境测试篇一
1.首先使用本地Windows安装的ES进行环境测试 第一步:创建索引 使用postman 发送PUT请求:http://localhost:9200/索引名称 {"settings&quo ...
- Java连接Elasticsearch6.xxx 高级检索篇三
1. termQuery:精确查询 Term Query为精确查询,在搜索时会整体匹配关键字,不再将关键字分词. /**** termQuery* @throws Exception*/@Testpu ...
- Java连接Elasticsearch6.xxx CRUD篇二
首先我们对上一篇的代码进行优化.创建客户端连接工具 import java.net.InetAddress; import java.net.UnknownHostException;import o ...
- Java开发规范之代码格式篇(上)
在程序员的世界里有两件最讨厌的事情,第一件事情是讨厌写代码注释,第二件事情是讨厌看别人的代码不写注释.虽然这只是个段子,但也反映了当下很多程序员的心声.下面简单介绍下代码规范的重要性,第一,规范的代码 ...
- pytorch bert文本分类_一起读Bert文本分类代码 (pytorch篇 四)
Bert是去年google发布的新模型,打破了11项纪录,关于模型基础部分就不在这篇文章里多说了.这次想和大家一起读的是huggingface的pytorch-pretrained-BERT代码exa ...
- java连接sql数据库代码_Java如何连接Sql的数据库
Java如何连接Sql的数据库 Java连接数据库,除了用Jdbc-Odbc桥接外,还有更实用的方法么?我是指不用配置DSN,直接和Sql连接的那种,需要安装什么驱动么?--------------- ...
- java连接sql 2008代码,java连接sql server 2008数据库代码
Java连接SQLServer 2008数据库的步骤: 1.到微软官方下载jdbc 并解压,得到sqljdbc.jar和sqljdbc4.jar,由于使用的是JDK1.7,所以使用sqljdbc4.j ...
- java连接mysql封装代码_JDBC连接数据库方法的封装,以及查询数据方法的封装
(在上一篇文章中,我们详细的介绍了连接数据库的方法,以及eclipse操作数据库信息的相关方法,在这里我们将主要讲封装.) 主要内容: 一般的连接数据库测试 把连接数据库的方法封装成一个类和测试 一个 ...
- java oracle数据库连接代码,java连接oracle数据库代码实例(注释详解)
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sq ...
最新文章
- 数据通信技术(七:RIP路由水平分割配置)
- 【 Notes 】Best linear unbiased estimator(BLUE) approach for time-of-arrival based localisation
- 【pmcaff专栏】项目管理失败?如何避免?
- 鸢尾花分类_K近邻(分类通用 数据挖掘入门与实践-实验4)
- Linux ---yum源详解
- HDU 1465 不容易系列之一 (错排)
- C++ vector和set的区别
- vue脚手架学习笔记
- 多维空间搜索算法RTree
- C/C++框架、库、资源
- 无标号有根树计数与无标号无根树计数
- MySQL数据库操作练习题-各种操作掌握MySQL查询操作
- 实现对手机联系人列表进行读写操作,并用RecyclerView收缩展开方式展现
- 浏览器支持base64编码
- 任正非:实事求是的科研方向与二十年的艰苦努力(新年推荐)
- 高阶人工智能时代的畅想
- ansible 学习
- 数字藏品盲盒系统功能开发H5源码搭建
- Ant工具 ant的安装与配置 ant作用
- html语言需要dw吗,DW(HTML-基础知识点1)