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

java SpringBoot2.7整合Elasticsearch(ES)7 進(jìn)行文檔增刪查改

這篇具有很好參考價(jià)值的文章主要介紹了java SpringBoot2.7整合Elasticsearch(ES)7 進(jìn)行文檔增刪查改。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

首先 我們?cè)?ES中加一個(gè) books 索引 且?guī)в蠭K分詞器的索引
springboot2.7.16集成es,jenkins,es,spring boot
首先 pom.xml導(dǎo)入依賴

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>

application配置文件中編寫如下配置
spring.elasticsearch.hosts: 172.16.5.10:9200
我這里是用的yml格式的

spring:
  elasticsearch:
    hosts: http://localhost:9200

告訴它指向 我們本地的 9200服務(wù)

然后 我們?cè)趩?dòng)類同目錄下 創(chuàng)建一個(gè)叫 domain的包 放屬性類
然后在這個(gè)包下創(chuàng)建一個(gè)叫 books的類
參考代碼如下

package com.example.webdom.domain;

import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.stereotype.Component;

@Component
@Document(indexName = "books")
public class books {
    private String id;
    private String type;
    private String name;
    private String describe;

    public String getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public String getType() {
        return type;
    }

    public String getDescribe() {
        return describe;
    }

    public void setId(String id) {
        this.id = id;
    }

    public void setType(String type) {
        this.type = type;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setDescribe(String describe) {
        this.describe = describe;
    }

    @Override
    public String toString() {
        return "books{" +
                "id='" + id + '\'' +
                ", type='" + type + '\'' +
                ", name='" + name + '\'' +
                ", description='" + describe + '\'' +
                '}';
    }
}

springboot2.7.16集成es,jenkins,es,spring boot
這里 我們就定義了幾個(gè)屬性 聲明get set函數(shù) 然后 為了不免錯(cuò)誤 我們id直接給了個(gè)字符串類型
重寫了toString 讓大家能夠更直觀的看到屬性
然后 Document 的indexName 告訴程序 我們要用的是哪一個(gè)索引 這里我們給了個(gè) books 表示操作books 索引

然后 我們創(chuàng)建一個(gè)Mapper接口 這里 我們直接就叫 BooksMapper
springboot2.7.16集成es,jenkins,es,spring boot
接口代碼如下

package com.example.webdom.service;

import com.example.webdom.domain.books;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface BoooksMaaper extends ElasticsearchRepository<books,String> {
}

它需要繼承 ElasticsearchRepository 操作ES的一個(gè)接口 然后通過 Repository 將它加到spring容器中

然后 我們?cè)趩?dòng)類同目錄下的 config 包 沒有就建一個(gè) 下面創(chuàng)建一個(gè)類 叫 ESClientConfig 名字無所謂
然后 編寫代碼如下

package com.example.webdom.config;

import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;

import org.apache.http.HttpHost;
import org.elasticsearch.client.RestClientBuilder;

@Configuration
public class ESClientConfig {

    @Autowired
    private Environment environment;

    @Bean
    public RestHighLevelClient elasticsearchClient() {
        String elasticsearchHosts = environment.getProperty("spring.elasticsearch.hosts");
        RestClientBuilder builder = RestClient.builder(HttpHost.create(elasticsearchHosts));
        // 設(shè)置其他配置,如認(rèn)證信息、連接超時(shí)等
        RestHighLevelClient client = new RestHighLevelClient(builder);
        return client;
    }
}

springboot2.7.16集成es,jenkins,es,spring boot
然后 我們?cè)跍y(cè)試類 中將這個(gè)接口條件裝配進(jìn)來
springboot2.7.16集成es,jenkins,es,spring boot
測(cè)試類代碼編寫如下

package com.example.webdom;

import com.example.webdom.domain.books;
import com.example.webdom.service.BoooksMaaper;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
public class WebDomApplicationTests {

    @Autowired
    private BoooksMaaper BoooksMaaper;

    @Test
    void set() {
        books bookdai = new books();
        bookdai.setId("1");
        bookdai.setType("愛貓當(dāng)?shù)淖晕倚薷臉?);
        bookdai.setName("愛護(hù)貓貓");
        bookdai.setDescribe("幫助所有愛貓當(dāng)快速了解貓貓");
        books book = BoooksMaaper.save(bookdai);
        System.out.println(book);
    }
}

這里 我們條件裝配了自己寫的接口 BoooksMaaper
然后 books實(shí)體類 new出來 然后 用set方法給每一個(gè)字段賦值
最后調(diào)用 save 添加方法 它有一個(gè)返回值 就是我們的屬性類實(shí)體對(duì)象

我們右鍵運(yùn)行
springboot2.7.16集成es,jenkins,es,spring boot
此時(shí) 我們就運(yùn)行成功了 然后 可以看到 save 返回的這個(gè)對(duì)象 就是我們添加進(jìn)去的東西了
springboot2.7.16集成es,jenkins,es,spring boot
然后 我們通過請(qǐng)求查詢一下 books索引下面的文檔
http://localhost:9200/books/_search get
就會(huì)看到 這里確實(shí)是進(jìn)來了
springboot2.7.16集成es,jenkins,es,spring boot
然后呢 這個(gè)東西的修改比較有意思
我們還是這樣一段代碼

books bookdai = new books();
bookdai.setId("1");
bookdai.setType("vue");
bookdai.setName("vue基礎(chǔ)到進(jìn)階");
bookdai.setDescribe("測(cè)試vue內(nèi)容修改");
books book = BoooksMaaper.save(bookdai);
System.out.println(book);

有些人可能已經(jīng)蒙了 save不是添加嗎?
這里的設(shè)定非常有趣呀 save 你的id如果有 它會(huì)覆蓋 如果沒有 就是添加
我們的id 1是已經(jīng)存在的 所以 它會(huì)將我們前面添加那條id為1的數(shù)據(jù)覆蓋掉 就是修改功能了

運(yùn)行之后 控制臺(tái)輸出一切正常
springboot2.7.16集成es,jenkins,es,spring boot
然后 我們來查一下
會(huì)發(fā)現(xiàn) 確實(shí)是實(shí)現(xiàn)了一個(gè)修改的效果
springboot2.7.16集成es,jenkins,es,spring boot
然后 我們來看 ES最有特殊的查詢
其實(shí)ES主要的價(jià)值就在于分詞的一個(gè)查詢

首先是查詢?nèi)?findAll
我們這樣寫

Iterable<books> all = BoooksMaaper.findAll();
for (books book : all){
   System.out.println("book = " +book);
}

調(diào)用 findAll 返回一個(gè) 泛型為我們實(shí)體類的Iterable接口集合
然后 for遍歷這個(gè)集合 輸出每一次結(jié)果

運(yùn)行代碼 因?yàn)槲覀兛偣簿鸵粭l數(shù)據(jù) 所以輸出的內(nèi)容就一條 findAll就是查詢?nèi)?br>springboot2.7.16集成es,jenkins,es,spring boot
然后 按照id查詢 findById

Optional<books> byId = BoooksMaaper.findById("1");
System.out.println(byId);

我們查詢id為1的內(nèi)容 并輸出
右鍵運(yùn)行代碼
springboot2.7.16集成es,jenkins,es,spring boot
這里 也是順利查出來了
springboot2.7.16集成es,jenkins,es,spring boot
然后 他有一個(gè)比較特殊函數(shù) 感覺不是很實(shí)用findAllById
它支持傳入list數(shù)組
可以傳給它多個(gè)id 然后帶出多條數(shù)據(jù)

ArrayList<String> ids = new ArrayList<>();
ids.add("1");
ids.add("2");
ids.add("3");
ids.add("4");
Iterable<books> byId = BoooksMaaper.findAllById(ids);

查詢 id 1 2 3 4的數(shù)據(jù) 然后形成一個(gè) 實(shí)體類泛型的 Iterable集合

然后 我們來說自定義的查詢方法
我們 可以在自己寫的 BoooksMaaper 接口中寫一個(gè)這樣的函數(shù)

//自定義 根據(jù)name查詢
List<books> findByName(String name);

springboot2.7.16集成es,jenkins,es,spring boot
這里需要注意 findBy 后面 跟自己要條件查詢的字段名 首字母大寫 因?yàn)槿绻悴贿@樣 它是找不到你要查哪個(gè)字段的

然后 我們測(cè)試類來調(diào)用這個(gè)函數(shù)

List<books> byId = BoooksMaaper.findByName("vue");
System.out.println(byId);

springboot2.7.16集成es,jenkins,es,spring boot
運(yùn)行代碼 這里也順利通過 vue 模糊查詢到了
springboot2.7.16集成es,jenkins,es,spring boot
最后刪除方法
我們就看個(gè)根據(jù)id刪除吧 deleteById
沒有返回值
我們直接寫

BoooksMaaper.deleteById("1");

右鍵運(yùn)行代碼
springboot2.7.16集成es,jenkins,es,spring boot
運(yùn)行狀態(tài)是OK的 但是 看不出有沒有成功
我們請(qǐng)求查詢一下索引下的文檔
springboot2.7.16集成es,jenkins,es,spring boot
很明顯 已經(jīng)刪掉了文章來源地址http://www.zghlxwxcb.cn/news/detail-825313.html

到了這里,關(guān)于java SpringBoot2.7整合Elasticsearch(ES)7 進(jìn)行文檔增刪查改的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(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 操作索引及文檔

    【SpringBoot】整合Elasticsearch 操作索引及文檔

    官網(wǎng)操作文檔:Elasticsearch Clients | Elastic ????? ???????? 踩坑太多了。。。這里表明一下Spring Boot2.4以上版本可能會(huì)出現(xiàn)問題,所以我降到了2.2.1.RELEASE。對(duì)于現(xiàn)在2023年6月而言,Es版本已經(jīng)到了8.8,而SpringBoot版本已經(jīng)到了3.x版本。如果是高版本的Boot在配置類的時(shí)候會(huì)發(fā)現(xiàn)

    2024年02月09日
    瀏覽(57)
  • springboot整合es進(jìn)行搜索

    springboot整合es進(jìn)行搜索

    Elasticsearch 的官方地址:https://www.elastic.co/cn/ 這里選擇下載 7.8.0 版本 下載地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch Elasticsearch 分為 Linux 和 Windows 版本,這里我們只是做測(cè)試,因此下載 windows 版本即可。 Windows 版的 Elasticsearch 的安裝很簡(jiǎn)單,解壓即安裝完畢,解

    2024年02月08日
    瀏覽(14)
  • ElasticSearch系列 - SpringBoot整合ES:ElasticSearch分析器

    1. ElasticSearch match 文本搜索的過程? Elasticsearch 的 match 查詢是一種基于文本匹配的查詢方式,它的搜索過程如下: ① 將查詢字符串分詞:Elasticsearch 會(huì)將查詢字符串分成一個(gè)個(gè)詞項(xiàng)(term),并去除停用詞(如“的”、“是”等常用詞匯)和標(biāo)點(diǎn)符號(hào)等無意義的字符。 ② 構(gòu)建

    2023年04月18日
    瀏覽(25)
  • 【開發(fā)篇】九、SpringBoot整合ES(ElasticSearch)

    【開發(fā)篇】九、SpringBoot整合ES(ElasticSearch)

    整合思路都一樣,先起步依賴或普通依賴,再配置,再封裝的操作對(duì)象。先引入依賴: application.yaml配置: 在需要的地方注入客戶端操作對(duì)象: 注意 ,與以往不同的是,SpringBoot平臺(tái)并沒有跟隨ES的更新速度進(jìn)行同步更新,ES提供了 High Level Client 操作ES,導(dǎo)入坐標(biāo): 不用加配

    2024年02月04日
    瀏覽(25)
  • ElasticSearch系列 - SpringBoot整合ES:分析器

    1. ElasticSearch match 文本搜索的過程? Elasticsearch 的 match 查詢是一種基于文本匹配的查詢方式,它的搜索過程如下: ① 將查詢字符串分詞:Elasticsearch 會(huì)將查詢字符串分成一個(gè)個(gè)詞項(xiàng)(term),并去除停用詞(如“的”、“是”等常用詞匯)和標(biāo)點(diǎn)符號(hào)等無意義的字符。 ② 構(gòu)建

    2024年02月06日
    瀏覽(24)
  • springboot整合redis,MongoDB,Elasticsearch(ES)

    springboot整合redis,MongoDB,Elasticsearch(ES)

    目錄 ?springboot整合redis 連接Redis 字符串操作 哈希表操作 列表操作 集合操作 有序集合操作 lettcus與jedis的區(qū)別? springboot整合MongoDB 新增數(shù)據(jù) 查詢數(shù)據(jù) 更新數(shù)據(jù) 刪除數(shù)據(jù) ?springboot整合Elasticsearch(ES) 創(chuàng)建ElasticsearchRepository 創(chuàng)建實(shí)體類 增刪改查 搜索 Spring Boot整合Redis,需要使

    2024年02月05日
    瀏覽(22)
  • SpringBoot 整合 ES 進(jìn)行各種高級(jí)查詢搜索

    SpringBoot 整合 ES 進(jìn)行各種高級(jí)查詢搜索

    上一章:《ElasticSearch集群的搭建》 如果你還未安裝es的相關(guān)信息,請(qǐng)先移步至:《ElasticSearch安裝》進(jìn)行安裝 如果您的SpringBoot項(xiàng)目還未整合es,請(qǐng)移步至:《SpringBoot整合ElasticSearch實(shí)現(xiàn)模糊查詢,批量CRUD,排序,分頁(yè),高亮》 同時(shí)本文的操作中涉及到ElasticSearchRepository和Ela

    2023年04月15日
    瀏覽(23)
  • 【Elasticsearch】SpringBoot整合ES實(shí)現(xiàn)搜索功能 | 高亮顯示

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

    先看代碼: controller: serviceImpl: 小結(jié) : 1、添加ES場(chǎng)景啟動(dòng)器 2、yaml配置ES 3、準(zhǔn)備需要用到的變量 注:還有一個(gè)注入的RestHighLevelClient 結(jié)構(gòu)如下: 具體調(diào)用的方法以及設(shè)置頁(yè)碼等參看代碼。 加斷點(diǎn)查看對(duì)應(yīng)searchResponse數(shù)據(jù)結(jié)構(gòu): HighlightFields的數(shù)據(jù)結(jié)構(gòu): 對(duì)照kinaba結(jié)果: 3、根

    2024年02月11日
    瀏覽(25)
  • ElasticSearch序列 - SpringBoot整合ES:范圍查詢 range

    01. ElasticSearch range查詢是什么? Elasticsearch 中的 range 查詢可以用于查詢某個(gè)字段在一定范圍內(nèi)的文檔。 range 查詢可同時(shí)提供包含和不包含這兩種范圍表達(dá)式,可供組合的選項(xiàng)如下: gt : 大于(greater than) lt : 小于(less than) gte : = 大于或等于(greater than or equal to) lte : = 小于

    2024年02月09日
    瀏覽(27)
  • Springboot 整合 Elasticsearch(五):使用RestHighLevelClient操作ES ②

    Springboot 整合 Elasticsearch(五):使用RestHighLevelClient操作ES ②

    ?? 前情提要: Springboot 整合 Elasticsearch(三):使用RestHighLevelClient操作ES ① 目錄 ?一、Springboot 整合 Elasticsearch 1、RestHighLevelClient API介紹 1.1、全查詢 分頁(yè) 排序 1.2、單條件查詢 1.2.1、termQuery 1.2.2、matchQuery 1.2.3、短語(yǔ)檢索 1.3、組合查詢 1.4、范圍查詢 1.5、模糊查詢 1.6、分組

    2024年04月11日
    瀏覽(28)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包