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

ElasticSearch 學(xué)習(xí)9 spring-boot ,elasticsearch7.16.1實(shí)現(xiàn)中文拼音分詞搜索

這篇具有很好參考價(jià)值的文章主要介紹了ElasticSearch 學(xué)習(xí)9 spring-boot ,elasticsearch7.16.1實(shí)現(xiàn)中文拼音分詞搜索。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、elasticsearch官網(wǎng)下載:Elasticsearch 7.16.1 | Elastic

二、拼音、ik、繁簡體轉(zhuǎn)換插件安裝

ik分詞:GitHub - medcl/elasticsearch-analysis-ik: The IK Analysis plugin integrates Lucene IK analyzer into elasticsearch, support customized dictionary.

拼音分詞:GitHub - medcl/elasticsearch-analysis-pinyin: This Pinyin Analysis plugin is used to do conversion between Chinese characters and Pinyin.

繁簡體轉(zhuǎn)換:GitHub - medcl/elasticsearch-analysis-stconvert: STConvert is analyzer that convert chinese characters between traditional and simplified.中文簡繁體互相轉(zhuǎn)換.

安裝過程:從github上下載源碼到本地,idea打開項(xiàng)目,修改對應(yīng)項(xiàng)目中的pom.xml將

<elasticsearch.version>7.16.1</elasticsearch.version>修改為對應(yīng)的elasticsearch版本

,alt+f12打開cmd命令界面,輸入mvn install,項(xiàng)目編譯成功后會在對應(yīng)目錄中生成對應(yīng)zip包,效果如圖:

ElasticSearch 學(xué)習(xí)9 spring-boot ,elasticsearch7.16.1實(shí)現(xiàn)中文拼音分詞搜索,elasticsearch,elasticsearch,學(xué)習(xí),jenkins

ElasticSearch 學(xué)習(xí)9 spring-boot ,elasticsearch7.16.1實(shí)現(xiàn)中文拼音分詞搜索,elasticsearch,elasticsearch,學(xué)習(xí),jenkins

將對應(yīng)zip包解壓到elasticsearch存放目錄的plugins下:

ElasticSearch 學(xué)習(xí)9 spring-boot ,elasticsearch7.16.1實(shí)現(xiàn)中文拼音分詞搜索,elasticsearch,elasticsearch,學(xué)習(xí),jenkins

重新給把lasticsearch的文件權(quán)限給用戶elastic?

chown -R elastic /usr/local/elasticsearch-7.16.1/

不然報(bào)權(quán)限的錯(cuò)誤哦

然后啟動elasticsearch.bat,

ElasticSearch 學(xué)習(xí)9 spring-boot ,elasticsearch7.16.1實(shí)現(xiàn)中文拼音分詞搜索,elasticsearch,elasticsearch,學(xué)習(xí),jenkins這樣對應(yīng)插件就算安裝成功了

三. mvn,及yml配置

  <elasticsearch.version>7.16.1</elasticsearch.version>

 <dependency>
            <groupId>org.elasticsearch</groupId>
            <artifactId>elasticsearch</artifactId>
            <version>${elasticsearch.version}</version>

        </dependency>
        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>elasticsearch-rest-client</artifactId>
            <version>${elasticsearch.version}</version>
        </dependency>
        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>transport</artifactId>
            <version>${elasticsearch.version}</version>
        </dependency>

        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>elasticsearch-rest-high-level-client</artifactId>
            <version>${elasticsearch.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-elasticsearch</artifactId>
            <version>3.1.3.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.elasticsearch.plugin</groupId>
            <artifactId>x-pack-sql-jdbc</artifactId>
            <version>${elasticsearch.version}</version>
        </dependency>
  # ElasticSearch 7設(shè)置
  elasticsearch:
   
    schema: http
    host: 123.456
    port: 9200
    userName: es
    password:3333
    indexes: index

四. es工具類

此次在原來的基礎(chǔ)上主要是加了創(chuàng)建索引時(shí)可選則索引庫的默認(rèn)分詞器類型,可選pinyin

CreateIndexRequest request = new CreateIndexRequest(indexName);
request.settings(Settings.builder()
        //.put("analysis.analyzer.default.type", "ik_max_word")
        //.put("analysis.analyzer.default.type", "pinyin")//同時(shí)支持拼音和文字
        .put("analysis.analyzer.default.type", indexType)


import com.alibaba.fastjson.JSON;
import io.micrometer.core.instrument.util.StringUtils;
import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.lucene.search.TotalHits;
import org.elasticsearch.action.DocWriteResponse;
import org.elasticsearch.action.admin.indices.create.CreateIndexRequest;
import org.elasticsearch.action.admin.indices.create.CreateIndexResponse;
import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;
import org.elasticsearch.action.admin.indices.get.GetIndexRequest;
import org.elasticsearch.action.delete.DeleteRequest;
import org.elasticsearch.action.delete.DeleteResponse;
import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.action.support.master.AcknowledgedResponse;
import org.elasticsearch.action.update.UpdateRequest;
import org.elasticsearch.action.update.UpdateResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestClientBuilder;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.text.Text;
import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.common.xcontent.XContentType;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.index.query.QueryStringQueryBuilder;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.SearchHits;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder;
import org.elasticsearch.search.fetch.subphase.highlight.HighlightField;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * @author ylwang
 * @create 2021/7/27 9:16
 */
@Configuration
public class ElasticSearchClientConfig {

    /**
     * 協(xié)議
     */
    @Value("${jeecg.elasticsearch.schema}")
    private String schema;

    /**
     * 用戶名
     */
    @Value("${jeecg.elasticsearch.userName}")
    private String userName;

    /**
     * 密碼
     */
    @Value("${jeecg.elasticsearch.password}")
    private String password;

    /**
     * 地址
     */
    @Value("${jeecg.elasticsearch.host}")
    private String host;

    /**
     * 地址
     */
    @Value("${jeecg.elasticsearch.port}")
    private String port;

    public final   String   AIOPENQAQINDEXNAME = "aiopenqaq"; //ai問題庫索引名
    public final   String   AIYunLiao = "aiyunliao"; //ai語料庫索引名
    public final   String   KNOWLEDGE = "knowledge";//知識庫索引名

    public static RestHighLevelClient restHighLevelClient;

    @Bean
    public RestHighLevelClient restHighLevelClient() {
        restHighLevelClient = new RestHighLevelClient(RestClient.builder(
                new HttpHost(host, Integer.parseInt(port), schema)));
        //驗(yàn)證用戶密碼
        final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
        credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(userName, password));
        RestClientBuilder restClientBuilder = RestClient
                .builder(new HttpHost(host, Integer.parseInt(port), schema))
                .setHttpClientConfigCallback(httpClientBuilder -> {
                    httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
                    return httpClientBuilder;
                })
                .setRequestConfigCallback(requestConfigBuilder -> {
                    return requestConfigBuilder;
                });

        restHighLevelClient = new RestHighLevelClient(restClientBuilder);
        return restHighLevelClient;
    }
    /**
     * 判斷索引是否存在
     * @return 返回是否存在。
     * 		<ul>
     * 			<li>true:存在</li>
     * 			<li>false:不存在</li>
     * 		</ul>
     */
    public boolean existIndex(String index){
        GetIndexRequest request = new GetIndexRequest();
        request.indices(index);
        boolean exists;
        try {
            exists = restHighLevelClient().indices().exists(request, RequestOptions.DEFAULT);
        } catch (IOException e) {
            e.printStackTrace();
            return false;
        }
        return exists;
    }


    /**
     * 查詢并分頁
     * @param indexName 索引名字
     * @param from 從第幾條開始查詢,相當(dāng)于 limit a,b 中的a ,比如要從最開始第一條查,可傳入: 0
     * @param size 本次查詢最大查詢出多少條數(shù)據(jù) ,相當(dāng)于 limit a,b 中的b
     * @return {@link SearchResponse} 結(jié)果,可以通過 response.status().getStatus() == 200 來判斷是否執(zhí)行成功
     *獲取總條數(shù)的方法
     * TotalHits totalHits = searchResponse.getHits().getTotalHits();
     *
     */
    public SearchResponse search(String indexName, SearchSourceBuilder searchSourceBuilder, Integer from, Integer size){
        SearchRequest request = new SearchRequest(indexName);
        searchSourceBuilder.from(from);
        searchSourceBuilder.size(size);
        request.source(searchSourceBuilder);
        SearchResponse response = null;
        try {
            response = restHighLevelClient().search(request, RequestOptions.DEFAULT);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return response;
    }

    /**
     * 根據(jù)索引中的id查詢
     * @param indexName
     * @param id
     * @return
     */
    public String searchById(String indexName,String id){
        SearchRequest request = new SearchRequest(indexName);
        request.source(new SearchSourceBuilder().query(QueryBuilders.termQuery("_id",id)));
        SearchResponse response = null;
        try {
            response = restHighLevelClient().search(request, RequestOptions.DEFAULT);
            SearchHits hits = response.getHits();
            SearchHit[] hits1 = hits.getHits();
            for (SearchHit fields : hits1) {
                return fields.getSourceAsString();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 創(chuàng)建索引
     *
     * @param indexName 要?jiǎng)?chuàng)建的索引的名字,傳入如: testindex
     * @param indexType 索引類型 : ik_max_word 和 pinyin
     * @return 創(chuàng)建索引的響應(yīng)對象??梢允褂?{@link CreateIndexResponse#isAcknowledged()} 來判斷是否創(chuàng)建成功。如果為true,則是創(chuàng)建成功
     */
    public CreateIndexResponse createIndex(String indexName,String indexType)  {
        CreateIndexResponse response=null;
        if(existIndex(indexName)){
            response = new CreateIndexResponse(false, false, indexName);
            return response;
        }
        if(StringUtils.isBlank(indexType)){
            indexType="ik_max_word";
        }
        CreateIndexRequest request = new CreateIndexRequest(indexName);
        request.settings(Settings.builder()
                //.put("analysis.analyzer.default.type", "ik_max_word")
                //.put("analysis.analyzer.default.type", "pinyin")//同時(shí)支持拼音和文字
                .put("analysis.analyzer.default.type", indexType)
        );
        try {
            response = restHighLevelClient().indices().create(request, RequestOptions.DEFAULT);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return response;
    }

    /**
     * 數(shù)據(jù)添加,網(wǎng) elasticsearch 中添加一條數(shù)據(jù)
     * @param params 要增加的數(shù)據(jù),key-value形式。 其中map.value 支持的類型有 String、int、long、float、double、boolean
     * @param indexName 索引名字,類似數(shù)據(jù)庫的表,是添加進(jìn)那個(gè)表
     * @param id 要添加的這條數(shù)據(jù)的id, 如果傳入null,則由es系統(tǒng)自動生成一個(gè)唯一ID
     * @return 創(chuàng)建結(jié)果。如果 {@link IndexResponse#getId()} 不為null、且id長度大于0,那么就成功了
     */
    public IndexResponse put(String params, String indexName, String id){
        //創(chuàng)建請求
        IndexRequest request = new IndexRequest(indexName);
        if(id != null){
            request.id(id);
        }
        request.timeout(TimeValue.timeValueSeconds(5));
        IndexResponse response = null;
        try {
            response = restHighLevelClient().index(request.source(params, XContentType.JSON).setRefreshPolicy("wait_for"), RequestOptions.DEFAULT);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return response;
    }

    /**
     * 數(shù)據(jù)更新
     * @param params 要更新 的數(shù)據(jù),key-value形式。 其中map.value 支持的類型有 String、int、long、float、double、boolean
     * @param indexName 索引名字,類似數(shù)據(jù)庫的表,是添加進(jìn)那個(gè)表
     * @param id 要添加的這條數(shù)據(jù)的id, 如果傳入null,則由es系統(tǒng)自動生成一個(gè)唯一ID
     * @return 創(chuàng)建結(jié)果。如果 {@link IndexResponse#getId()} 不為null、且id長度大于0,那么就成功了
     */
    public UpdateResponse update(String params, String indexName, String id){
        //創(chuàng)建請求
        UpdateRequest request = new UpdateRequest(indexName,id);
        request = request.doc(params, XContentType.JSON);
        request.setRefreshPolicy("wait_for");
        request.timeout(TimeValue.timeValueSeconds(5));
        UpdateResponse response = null;
        try {
            response = restHighLevelClient().update(request, RequestOptions.DEFAULT);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return  response;
    }


    /**
     * 刪除索引
     * @param indexName
     * @throws IOException
     */
    public AcknowledgedResponse deleteIndex(String indexName)   {
        DeleteIndexRequest request = new DeleteIndexRequest(indexName);
        AcknowledgedResponse response = null;
        try {
            response = restHighLevelClient().indices().delete(request, RequestOptions.DEFAULT);
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println(response.isAcknowledged());

        return response;
    }


    /**
     * 通過elasticsearch數(shù)據(jù)的id,來刪除這條數(shù)據(jù)
     * @param indexName 索引名字
     * @param id 要?jiǎng)h除的elasticsearch這行數(shù)據(jù)的id
     */
    public boolean deleteById(String indexName, String id) {
        DeleteRequest request = new DeleteRequest(indexName, id);
        request.setRefreshPolicy("wait_for");
        DeleteResponse delete = null;
        try {
            delete = restHighLevelClient().delete(request, RequestOptions.DEFAULT);

        } catch (IOException e) {
            e.printStackTrace();
            //刪除失敗
            return false;
        }

        if(delete == null){
            //這種情況應(yīng)該不存在
            return false;
        }
        if(delete.getResult().equals(DocWriteResponse.Result.DELETED)){
            return true;
        }else{
            return false;
        }
    }






}

查詢由must改成should,

ElasticSearch 學(xué)習(xí)9 spring-boot ,elasticsearch7.16.1實(shí)現(xiàn)中文拼音分詞搜索,elasticsearch,elasticsearch,學(xué)習(xí),jenkins

 @Override
    public Result<?> queryPageList(AiOpenqaQ aiOpenqaQ, HttpServletRequest req, Integer pageNo, Integer pageSize) {
//        es.deleteIndex(es.AIOPENQAQINDEXNAME);
        SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
        BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
        boolQueryBuilder.should(QueryBuilders.termQuery("topId",aiOpenqaQ.getTopId()));
        boolQueryBuilder.should(QueryBuilders.termQuery("tagId",aiOpenqaQ.getTagId()));
        searchSourceBuilder.query(boolQueryBuilder);
        SearchResponse search = es.search(es.AIOPENQAQINDEXNAME, searchSourceBuilder, pageNo == 1 || pageNo == 0 ? 0 : (pageNo -1) * pageSize, pageSize);
        SearchHits hits = search.getHits();
        List<AiOpenqaQ> list = new ArrayList<>();
        for (SearchHit hit : hits) {
            AiOpenqaQ aiOpenqaQ1 = JSON.parseObject(hit.getSourceAsString(), AiOpenqaQ.class);
            list.add(aiOpenqaQ1);
        }
        Page<AiOpenqaQ> page = new Page<>(pageNo,pageSize);
        page.setRecords(list);
        page.setTotal(search.getHits().getTotalHits().value);
        return Result.ok(page);
    }

五,創(chuàng)建索引,插入數(shù)據(jù)

@Resource
private ElasticSearchClientConfig es;

@Resource
private AiOpenqaQMapper aiOpenqaQMapper;



    @Override
    public int selectNums(String applicationId) {
        return aiOpenqaQMapper.selectNums(applicationId);
    }

    @Override
    public boolean saveAndEs(AiOpenqaQ aiOpenqaQ) {
       // es.deleteIndex(es.AIOPENQAQINDEXNAME);
        boolean save = this.save(aiOpenqaQ);
        if(save){
            if(!es.existIndex(es.AIOPENQAQINDEXNAME)){
                es.createIndex(es.AIOPENQAQINDEXNAME,"pinyin");
            }
            es.put(JsonMapper.toJsonString(aiOpenqaQ), es.AIOPENQAQINDEXNAME,aiOpenqaQ.getId());
        }
        return true;
    }
}

六,驗(yàn)證

同音詞查詢

ElasticSearch 學(xué)習(xí)9 spring-boot ,elasticsearch7.16.1實(shí)現(xiàn)中文拼音分詞搜索,elasticsearch,elasticsearch,學(xué)習(xí),jenkins

直接拼音

ElasticSearch 學(xué)習(xí)9 spring-boot ,elasticsearch7.16.1實(shí)現(xiàn)中文拼音分詞搜索,elasticsearch,elasticsearch,學(xué)習(xí),jenkins文章來源地址http://www.zghlxwxcb.cn/news/detail-814827.html

到了這里,關(guān)于ElasticSearch 學(xué)習(xí)9 spring-boot ,elasticsearch7.16.1實(shí)現(xiàn)中文拼音分詞搜索的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • ElasticSearch7.6.x 學(xué)習(xí)筆記

    ElasticSearch7.6.x 學(xué)習(xí)筆記

    ElasticSearch,簡稱es,es是一個(gè) 開源 的 高擴(kuò)展 的 分布式全文檢索引擎 ,它可以近乎實(shí)時(shí)的存儲、檢索數(shù)據(jù)。且本身擴(kuò)展性很好,可以擴(kuò)展到上百臺服務(wù)器,處理PB級別的數(shù)據(jù)。es也使用java開發(fā)并使用Lucene作為核心來實(shí)現(xiàn)所用索引和搜索的功能。但是,它的目的是通過簡單的

    2023年04月16日
    瀏覽(23)
  • [Java Framework] [ELK] Spring 整合ES (ElasticSearch7.15.x +)

    [Java Framework] [ELK] Spring 整合ES (ElasticSearch7.15.x +)

    ElasticSearch7.15.x 版本后,廢棄了高級Rest客戶端的功能 2.1 配置文件 2.2 配置類 3.1 索引的相關(guān)操作 3.2 實(shí)體映射相關(guān)操作 3.2.1 創(chuàng)建實(shí)體類 3.2.2 Doc實(shí)體操作API 3.3 聚合相關(guān)操作 3.3.1 創(chuàng)建實(shí)體類 3.3.2 創(chuàng)建操作類 [1] Elasticsearch Clients [2] Elasticsearch Clients - Aggregations

    2023年04月08日
    瀏覽(24)
  • ElasticSearch7.3學(xué)習(xí)(十八)----多索引搜索

    1、multi-index 多索引搜索 多索引搜索就是一次性搜索多個(gè)index下的數(shù)據(jù) 應(yīng)用場景:生產(chǎn)環(huán)境log索引可以按照日期分開。 2、_all metadata的原理和作用 直接可以搜索所有的field,任意一個(gè)field包含指定的就可以搜索出來。我們在進(jìn)行中搜索的時(shí)候,難道是對document中的每一個(gè)

    2024年02月11日
    瀏覽(30)
  • ElasticSearch7.3學(xué)習(xí)(三十一)----Logstash基礎(chǔ)學(xué)習(xí)

    ElasticSearch7.3學(xué)習(xí)(三十一)----Logstash基礎(chǔ)學(xué)習(xí)

    一、Logstash基本介紹 Logstash 是一個(gè)功能強(qiáng)大的工具,可與各種部署集成。 它提供了大量插件,可幫助你解析,豐富,轉(zhuǎn)換和緩沖來自各種來源的數(shù)據(jù)(文件、數(shù)據(jù)庫......)。logstash簡單來說就是一個(gè) 數(shù)據(jù)抽取工具 ,將數(shù)據(jù)從一個(gè)地方轉(zhuǎn)移到另一個(gè)地方。 Logstash 是 Elastic 棧非

    2023年04月09日
    瀏覽(26)
  • Elasticsearch基礎(chǔ)篇(四):Elasticsearch7.x的官方文檔學(xué)習(xí)(Set up Elasticsearch)

    You should rarely need to change Java Virtual Machine (JVM) options. If you do, the most likely change is setting the heap size. 通常情況下,您應(yīng)該很少需要更改Java虛擬機(jī)(JVM)選項(xiàng)。如果需要更改,最常見的更改是設(shè)置堆大小。 The remainder of this document explains in detail how to set JVM options. You can set options

    2024年02月08日
    瀏覽(28)
  • ElasticSearch7.3學(xué)習(xí)(二十二)----Text字段排序、Scroll分批查詢場景解析

    ElasticSearch7.3學(xué)習(xí)(二十二)----Text字段排序、Scroll分批查詢場景解析

    場景:數(shù)據(jù)庫中按照某個(gè)字段排序,sql只需寫order by 字段名即可,如果es對一個(gè) text field 進(jìn)行排序,es中無法排序。因?yàn)槲臋n入倒排索引表時(shí),分詞存入,es無法知道此字段的真實(shí)值。這樣的結(jié)果往往不準(zhǔn)確,因?yàn)榉衷~后是多個(gè)單詞,再排序就不是我們想要的結(jié)果了。 通常有兩

    2024年02月08日
    瀏覽(19)
  • Spring Boot中使用Spring Data Elasticsearch訪問Elasticsearch

    Spring Boot中使用Spring Data Elasticsearch訪問Elasticsearch

    Elasticsearch是一個(gè)分布式的全文搜索和分析引擎,它可以將海量數(shù)據(jù)進(jìn)行快速的查詢和聚合。Spring Data Elasticsearch是Spring Data家族中的一個(gè)成員,它提供了與Elasticsearch的集成,可以方便地使用Spring框架來訪問Elasticsearch。 在本文中,我們將會介紹如何在Spring Boot中使用Spring Data

    2024年02月08日
    瀏覽(21)
  • ElasticSearch7.3學(xué)習(xí)(十六)----RestHighLevelClient Java api實(shí)現(xiàn)索引的創(chuàng)建、刪除、是否存在、關(guān)閉、開啟

    注意:導(dǎo)入的包區(qū)別,不同的包創(chuàng)建索引的方式不同。博主親身實(shí)踐,具體體現(xiàn)在createIndexRequest.mapping()里面。讀者可自行試驗(yàn)。 ?由此可以猜想一下: 可以看到上述兩種方式導(dǎo)入的包的子類名是相同的,但是具體對索引的操作方式可能是不同的。具體的區(qū)別博主暫時(shí)還不清

    2024年02月16日
    瀏覽(90)
  • Spring Boot 集成 ElasticSearch

    Spring Boot 集成 ElasticSearch

    首先創(chuàng)建一個(gè)項(xiàng)目,在項(xiàng)目中加入 ES 相關(guān)依賴,具體依賴如下所示: 在配置文件 application.properties 中配置 ES 的相關(guān)參數(shù),具體內(nèi)容如下: 其中指定了 ES 的 host 和端口以及超時(shí)時(shí)間的設(shè)置,另外我們的 ES 沒有添加任何的安全認(rèn)證,因此 username 和 password 就沒有設(shè)置。 然后在

    2024年02月03日
    瀏覽(24)
  • spring-boot定時(shí)任務(wù)

    spring-boot定時(shí)任務(wù)

    定時(shí)任務(wù)規(guī)則:0? *? *? * ? *? * 表示任意月的任意周的每天的每時(shí)的每分的0秒開始一次任務(wù)。 任務(wù)加在方法上? 開始一次任務(wù) 表示 啟動?一次方法。 0/5 *? *? 5? *? 4? 表示 每月的最后一周的第五天的任意時(shí)任意分的0秒開始 每隔5秒啟動一次任務(wù)。 定時(shí)任務(wù)表達(dá)式 還有很

    2024年01月21日
    瀏覽(32)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包