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 代码高亮显示篇四相关推荐

  1. Java连接Elasticsearch6.xxx 环境测试篇一

    1.首先使用本地Windows安装的ES进行环境测试 第一步:创建索引 使用postman 发送PUT请求:http://localhost:9200/索引名称 {"settings&quo ...

  2. Java连接Elasticsearch6.xxx 高级检索篇三

    1. termQuery:精确查询 Term Query为精确查询,在搜索时会整体匹配关键字,不再将关键字分词. /**** termQuery* @throws Exception*/@Testpu ...

  3. Java连接Elasticsearch6.xxx CRUD篇二

    首先我们对上一篇的代码进行优化.创建客户端连接工具 import java.net.InetAddress; import java.net.UnknownHostException;import o ...

  4. Java开发规范之代码格式篇(上)

    在程序员的世界里有两件最讨厌的事情,第一件事情是讨厌写代码注释,第二件事情是讨厌看别人的代码不写注释.虽然这只是个段子,但也反映了当下很多程序员的心声.下面简单介绍下代码规范的重要性,第一,规范的代码 ...

  5. pytorch bert文本分类_一起读Bert文本分类代码 (pytorch篇 四)

    Bert是去年google发布的新模型,打破了11项纪录,关于模型基础部分就不在这篇文章里多说了.这次想和大家一起读的是huggingface的pytorch-pretrained-BERT代码exa ...

  6. java连接sql数据库代码_Java如何连接Sql的数据库

    Java如何连接Sql的数据库 Java连接数据库,除了用Jdbc-Odbc桥接外,还有更实用的方法么?我是指不用配置DSN,直接和Sql连接的那种,需要安装什么驱动么?--------------- ...

  7. java连接sql 2008代码,java连接sql server 2008数据库代码

    Java连接SQLServer 2008数据库的步骤: 1.到微软官方下载jdbc 并解压,得到sqljdbc.jar和sqljdbc4.jar,由于使用的是JDK1.7,所以使用sqljdbc4.j ...

  8. java连接mysql封装代码_JDBC连接数据库方法的封装,以及查询数据方法的封装

    (在上一篇文章中,我们详细的介绍了连接数据库的方法,以及eclipse操作数据库信息的相关方法,在这里我们将主要讲封装.) 主要内容: 一般的连接数据库测试 把连接数据库的方法封装成一个类和测试 一个 ...

  9. java oracle数据库连接代码,java连接oracle数据库代码实例(注释详解)

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sq ...

最新文章

  1. 数据通信技术(七:RIP路由水平分割配置)
  2. 【 Notes 】Best linear unbiased estimator(BLUE) approach for time-of-arrival based localisation
  3. 【pmcaff专栏】项目管理失败?如何避免?
  4. 鸢尾花分类_K近邻(分类通用 数据挖掘入门与实践-实验4)
  5. Linux ---yum源详解
  6. HDU 1465 不容易系列之一 (错排)
  7. C++ vector和set的区别
  8. vue脚手架学习笔记
  9. 多维空间搜索算法RTree
  10. C/C++框架、库、资源
  11. 无标号有根树计数与无标号无根树计数
  12. MySQL数据库操作练习题-各种操作掌握MySQL查询操作
  13. 实现对手机联系人列表进行读写操作,并用RecyclerView收缩展开方式展现
  14. 浏览器支持base64编码
  15. 任正非:实事求是的科研方向与二十年的艰苦努力(新年推荐)
  16. 高阶人工智能时代的畅想
  17. ansible 学习
  18. 数字藏品盲盒系统功能开发H5源码搭建
  19. Ant工具 ant的安装与配置 ant作用
  20. html语言需要dw吗,DW(HTML-基础知识点1)

热门文章

  1. 训练日志 2019.9.15
  2. The Cow Lexicon(POJ-3267)
  3. 信息学奥赛C++语言: 队伍调整
  4. 8 WM配置-主数据-定义门(Dock Door)
  5. java文件下载的utils_Java文件操作Utils
  6. pmos导通条件 图示_如何判断NMOS管和PMOS管
  7. C语言 strcat函数实现
  8. jwt认证机制优势和原理_微服务统一登录认证怎么做?JWT?
  9. 我就传个图片都不通过迈
  10. 中文select 加载完成后再排序