zoukankan      html  css  js  c++  java
  • 高亮显示

    @Test
        public void test() throws Exception {
            // 创建搜索服务器对象
            Client client = TransportClient.builder().build()
                    .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300));
            // 搜索数据
            SearchRequestBuilder searchRequestBuilder = client.prepareSearch("blog1").setTypes("article")
                    .setQuery(QueryBuilders.termQuery("title", "琐"));
            
            //定义高亮显示
            searchRequestBuilder.addHighlightedField("title");    //前置元素高亮
            searchRequestBuilder.setHighlighterPreTags("<em>");    //前置元素
            searchRequestBuilder.setHighlighterPostTags("</em>");//后置元素
            
            //发送给服务器
            SearchResponse searchResponse = searchRequestBuilder.get();
            
            // 获取命中次数,查询结果有多少对象
            SearchHits hits = searchResponse.getHits();
            System.out.println("查询结果有"+hits.getTotalHits()+"条");
            //遍历查询结果
            Iterator<SearchHit> iterator = hits.iterator();
            //获取json转换对象
            ObjectMapper objectMapper = new ObjectMapper();
            while(iterator.hasNext()) {
                //获取到每个查询对象
                SearchHit hit = iterator.next();
                //将高亮处理后的内容替换原有内容
                Map<String, HighlightField> highlightFields = hit.getHighlightFields();
                HighlightField titleField = highlightFields.get("title");
                // 获取到原有内容中 每个高亮显示 集中位置 fragment 就是高亮片段
                Text[] fragments = titleField.fragments();
                String title = "";
                for (Text text : fragments) {
                    System.err.println(text);
                    title += text;
                }
                // 将查询结果转换为对象
                Article article = objectMapper.readValue(hit.getSourceAsString(), Article.class);
                //用高亮显示后的内容替换原有内容
                article.setTitle(title);
                System.out.println(article);
            }
            //关闭连接
            client.close();
        }
  • 相关阅读:
    Linux 学习之DNS服务器
    Windows系统镜像自动添加驱动程序
    Linux下集群的搭建
    Heartbeat+LVS构建高可用负载均衡集群
    Keepalived高可用集群搭建(转载linuxIDC)
    CentOS 7.x设置自定义开机启动,添加自定义系统服务
    代码改变世界
    Vim食用指南
    Hibernate三种状态详解
    MySQL服务器的安装与配置
  • 原文地址:https://www.cnblogs.com/learnjfm/p/7327823.html
Copyright © 2011-2022 走看看