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();
        }
  • 相关阅读:
    Unique Binary Search Trees——LeetCode
    Binary Tree Inorder Traversal ——LeetCode
    Maximum Product Subarray——LeetCode
    Remove Linked List Elements——LeetCode
    Maximum Subarray——LeetCode
    Validate Binary Search Tree——LeetCode
    Swap Nodes in Pairs——LeetCode
    Find Minimum in Rotated Sorted Array——LeetCode
    Linked List Cycle——LeetCode
    VR AR MR
  • 原文地址:https://www.cnblogs.com/learnjfm/p/7327823.html
Copyright © 2011-2022 走看看