国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Elasticsearch】SpringBoot整合ES實(shí)現(xiàn)搜索功能 | 高亮顯示

這篇具有很好參考價(jià)值的文章主要介紹了【Elasticsearch】SpringBoot整合ES實(shí)現(xiàn)搜索功能 | 高亮顯示。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

先看代碼:
controller:

//根據(jù)關(guān)鍵字搜索
@RequestMapping(value = "/searchWC", produces = "application/json; charset=utf-8")
public Resp searchWC(Integer page, Integer limit, String kw){
    return searchService.searchWC(page, limit, kw);
}
//ft http://localhost:11011/search-api/search/searchWC?page=1&limit=5&kw=白色

serviceImpl:

   @Override
    public Resp searchWC(Integer page, Integer limit, String kw) {
        //todo: 搜索ES中的數(shù)據(jù),保存到data中。
        //準(zhǔn)備需要用到的變量:搜索請(qǐng)求、存放最終響應(yīng)數(shù)據(jù)的Map、搜索源構(gòu)造器、
        //  高亮構(gòu)造器、搜索結(jié)果、存放搜索結(jié)果的List。
        SearchRequest request = new SearchRequest("item");
        Map searchResultMap = new HashMap<>();
        SearchSourceBuilder builder = new SearchSourceBuilder();
        HighlightBuilder highlightBuilder = new HighlightBuilder();
        SearchResponse searchResponse = null;
        List list = new ArrayList<>();

        //添加搜索條件:關(guān)鍵字模糊查詢(xún)、分頁(yè)、高亮
        if(kw != null && !"".equals(kw)){
            //★★注意這里是matchQuery,不是fuzzyQuery,模糊搜索有空再學(xué)★★
            builder.query(QueryBuilders.matchQuery("title", kw).maxExpansions(1));
        }
        builder.from((page - 1) * limit);
        builder.size(limit);
        highlightBuilder.preTags("<em style='color: red'>");
        highlightBuilder.postTags("</em>");
        highlightBuilder.field("title");
        builder.highlighter(highlightBuilder);
        
        //設(shè)置查詢(xún)條件,查詢(xún)
        request.source(builder);
        try {
            searchResponse = highLevelClient.search(request, RequestOptions.DEFAULT);
            long hitsTotalValue = searchResponse.getHits().getTotalHits().value;//總條數(shù)
//            System.out.println("hitsTotalValue: " + hitsTotalValue);//ft
            searchResultMap.put("total", hitsTotalValue);
            //頁(yè)數(shù)(ceil后結(jié)果類(lèi)型是double)
            searchResultMap.put("pages", (long) Math.ceil(hitsTotalValue * 1.0 / limit));
            searchResultMap.put("currPage", page);
            
            //用高亮數(shù)據(jù)替換原數(shù)據(jù)
            SearchHits hits = searchResponse.getHits();
            for(SearchHit hit: hits){
                //數(shù)據(jù),不包含高亮數(shù)據(jù)
                Map<String, Object> sourceMap = hit.getSourceAsMap();
                //單獨(dú)取出高亮數(shù)據(jù)
                Map<String, HighlightField> highlightFields = hit.getHighlightFields();
                HighlightField highlightTitle = highlightFields.get("title");//注意是數(shù)組
                
                if(highlightTitle != null){
                    Text[] fragments = highlightTitle.getFragments();
                    if(fragments != null && fragments.length > 0){
                        //替換(fargment[0]是Text類(lèi)型的)
                        sourceMap.replace("title", fragments[0].toString());
                    }
                }
                list.add(sourceMap);//循環(huán)將數(shù)據(jù)添加入列表
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        
        searchResultMap.put("data", list);//設(shè)置最終結(jié)果數(shù)據(jù)域

        return Resp.ok("搜索成功", searchResultMap);
    }

小結(jié)
1、添加ES場(chǎng)景啟動(dòng)器

<!-- 添加ES的場(chǎng)景啟動(dòng)器的依賴(lài) -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>

2、yaml配置ES

spring:
  application:
    name: buy-search
  elasticsearch:
    rest:
      uris: 
        - 192.168.66.132:9200

3、準(zhǔn)備需要用到的變量
【Elasticsearch】SpringBoot整合ES實(shí)現(xiàn)搜索功能 | 高亮顯示
注:還有一個(gè)注入的RestHighLevelClient

結(jié)構(gòu)如下:
【Elasticsearch】SpringBoot整合ES實(shí)現(xiàn)搜索功能 | 高亮顯示
具體調(diào)用的方法以及設(shè)置頁(yè)碼等參看代碼。

加斷點(diǎn)查看對(duì)應(yīng)searchResponse數(shù)據(jù)結(jié)構(gòu):
【Elasticsearch】SpringBoot整合ES實(shí)現(xiàn)搜索功能 | 高亮顯示
HighlightFields的數(shù)據(jù)結(jié)構(gòu):
【Elasticsearch】SpringBoot整合ES實(shí)現(xiàn)搜索功能 | 高亮顯示
對(duì)照kinaba結(jié)果:

【Elasticsearch】SpringBoot整合ES實(shí)現(xiàn)搜索功能 | 高亮顯示
3、根據(jù)結(jié)構(gòu)圖,完成相關(guān)構(gòu)造器的配置,調(diào)用對(duì)應(yīng)方法,完成查詢(xún),處理結(jié)果,響應(yīng)。

最終響應(yīng)結(jié)果:
【Elasticsearch】SpringBoot整合ES實(shí)現(xiàn)搜索功能 | 高亮顯示文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-508337.html

到了這里,關(guān)于【Elasticsearch】SpringBoot整合ES實(shí)現(xiàn)搜索功能 | 高亮顯示的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • SpringBoot 整合ElasticSearch實(shí)現(xiàn)模糊查詢(xún),批量CRUD,排序,分頁(yè),高亮

    SpringBoot 整合ElasticSearch實(shí)現(xiàn)模糊查詢(xún),批量CRUD,排序,分頁(yè),高亮

    準(zhǔn)備一個(gè)空的SpringBoot項(xiàng)目 寫(xiě)入依賴(lài) 注意你的SpringBoot和你的es版本,一定要對(duì)應(yīng),如果不知道的可以查看這篇文章:https://blog.csdn.net/u014641168/article/details/130386872 我的版本是2.2.6,所以用的ES版本是 6.8.12,安裝es請(qǐng)看這篇文章:https://blog.csdn.net/u014641168/article/details/130622430 查看

    2024年02月08日
    瀏覽(41)
  • ElasticSearch系列 - SpringBoot整合ES之全文搜索匹配查詢(xún) match

    官方文檔地址:https://www.elastic.co/guide/en/elasticsearch/reference/index.html 權(quán)威指南:https://www.elastic.co/guide/cn/elasticsearch/guide/current/structured-search.html 1. 數(shù)據(jù)準(zhǔn)備 官方測(cè)試數(shù)據(jù)下載地址:https://download.elastic.co/demos/kibana/gettingstarted/accounts.zip ,數(shù)據(jù)量很大,我們自己構(gòu)造數(shù)據(jù)吧。 2. m

    2023年04月08日
    瀏覽(32)
  • 搜索引擎ElasticSearch分布式搜索和分析引擎學(xué)習(xí),SpringBoot整合ES個(gè)人心得

    搜索引擎ElasticSearch分布式搜索和分析引擎學(xué)習(xí),SpringBoot整合ES個(gè)人心得

    Elasticsearch是一個(gè)基于Lucene的搜索服務(wù)器。它提供了一個(gè)分布式多用戶(hù)能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java語(yǔ)言開(kāi)發(fā)的,并作為Apache許可條款下的開(kāi)放源碼發(fā)布,是一種流行的企業(yè)級(jí)搜索引擎。Elasticsearch用于云計(jì)算中,能夠達(dá)到實(shí)時(shí)搜索,穩(wěn)定,可靠,

    2024年02月04日
    瀏覽(35)
  • ElasticSearch系列 - SpringBoot整合ES:指定搜索結(jié)果返回的字段_source

    Elasticsearch的搜索結(jié)果可以通過(guò)以下參數(shù)進(jìn)行控制: from:指定搜索結(jié)果的起始位置,默認(rèn)為0。 size:指定返回的文檔數(shù)量,默認(rèn)為10。 sort:指定搜索結(jié)果的排序方式,可以按照字段升序或降序排列。 query:指定搜索的查詢(xún)條件,可以使用各種查詢(xún)語(yǔ)句進(jìn)行搜索。 filter:指定

    2024年02月04日
    瀏覽(24)
  • 知識(shí)點(diǎn)13--spring boot整合elasticsearch以及ES高亮

    知識(shí)點(diǎn)13--spring boot整合elasticsearch以及ES高亮

    本章知識(shí)點(diǎn)沿用知識(shí)點(diǎn)12的項(xiàng)目,介紹如何使用spring boot整合ES,沒(méi)有ES的去我主頁(yè) 各類(lèi)型大數(shù)據(jù)集群搭建文檔--大數(shù)據(jù)原生集群本地測(cè)試環(huán)境搭建三 中可以看到ES如何搭建 不管你有沒(méi)有ES,最好是沒(méi)有,因?yàn)橐欢ㄒ酪稽c(diǎn),一定要去官網(wǎng)查一下你當(dāng)前用的spring boot data es的版

    2024年02月12日
    瀏覽(97)
  • Elasticsearch (ES) 搜索引擎: 文本搜索:分析器/分詞器、同義詞/停用詞、拼音搜索、高亮顯示、拼寫(xiě)糾錯(cuò)

    原文鏈接:https://xiets.blog.csdn.net/article/details/132349032 版權(quán)聲明:原創(chuàng)文章禁止轉(zhuǎn)載 專(zhuān)欄目錄:Elasticsearch 專(zhuān)欄(總目錄) 文本搜索主要指的就是全文搜索,全文搜索是搜索引擎的核心功能,與精確匹配的結(jié)構(gòu)化數(shù)據(jù)不同,文本(text)數(shù)據(jù)在構(gòu)建索引和搜索時(shí)都需要進(jìn)行額外的處

    2024年02月03日
    瀏覽(44)
  • springboot——集成elasticsearch進(jìn)行搜索并高亮關(guān)鍵詞

    springboot——集成elasticsearch進(jìn)行搜索并高亮關(guān)鍵詞

    目錄 1.elasticsearch概述 3.springboot集成elasticsearch 4.實(shí)現(xiàn)搜索并高亮 (1)是什么: Elasticsearch 是位于 Elastic Stack 核心的分布式搜索和分析引擎。 Lucene 可以被認(rèn)為是迄今為止最先進(jìn)、性能最好的、功能最全的搜索引擎庫(kù)。但Lucene 只是一個(gè)基于java下的庫(kù),需要使用 Java 并要

    2023年04月20日
    瀏覽(27)
  • ElasticSearch(五)SpringBoot+ES+Jsoup實(shí)現(xiàn)JD(京東)搜索

    ElasticSearch(五)SpringBoot+ES+Jsoup實(shí)現(xiàn)JD(京東)搜索

    項(xiàng)目效果 ? 利用Jsoup爬蟲(chóng)爬取JD商城的商品信息,并將商品信息存儲(chǔ)在ElasticSearch中,同時(shí)利用請(qǐng)求進(jìn)行全文檢索,同時(shí)完成高亮顯示等功能。 Jsoup :jsoup 是一款Java 的HTML解析器,可直接解析某個(gè)URL地址、HTML文本內(nèi)容。它提供了一套非常省力的API,可通過(guò)DOM,CSS以及類(lèi)似于

    2023年04月26日
    瀏覽(25)
  • springboot集成elasticsearch,實(shí)現(xiàn)搜索提示補(bǔ)全功能

    springboot集成elasticsearch,實(shí)現(xiàn)搜索提示補(bǔ)全功能

    注:在此之前需要下載elasticsearch以及拼音分詞器。可以查看這篇文章,免費(fèi)下載,下載完直接解壓就行。 https://download.csdn.net/download/weixin_47874230/86514890 spring-data-elasticsearch版本需要與springboot版本對(duì)應(yīng),此處使用springboot版本為2.2.13.RELEASE

    2024年02月09日
    瀏覽(24)
  • SpringBoot實(shí)戰(zhàn)項(xiàng)目整合RabbitMQ+ElaticSearch實(shí)現(xiàn)SKU上下架功能_尚上優(yōu)選整合es+mq實(shí)現(xiàn)商品上下架(1)

    SpringBoot實(shí)戰(zhàn)項(xiàng)目整合RabbitMQ+ElaticSearch實(shí)現(xiàn)SKU上下架功能_尚上優(yōu)選整合es+mq實(shí)現(xiàn)商品上下架(1)

    文章目錄 前言 1、前置條件 2、搭建service-search模塊 3、開(kāi)發(fā)功能接口 3.1 添加遠(yuǎn)程調(diào)用方法 3.2、創(chuàng)建遠(yuǎn)程調(diào)用模塊 3.3、開(kāi)發(fā)service-search 模塊接口 4、RabbitMQ 5、完善SKU管理商品上下架 5.1、商品服務(wù) 5.2、es服務(wù) 6、最終測(cè)試 總結(jié) 最終實(shí)現(xiàn)效果:針對(duì)SKU的上下架 上架效果: 1、后

    2024年04月17日
    瀏覽(29)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包