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

Springboot集成ElasticSearch實(shí)現(xiàn)簡單的crud、簡單分頁、模糊查詢

這篇具有很好參考價(jià)值的文章主要介紹了Springboot集成ElasticSearch實(shí)現(xiàn)簡單的crud、簡單分頁、模糊查詢。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

pom.xml引入ElasticSearch

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

application.yml配置

spring:
  elasticsearch:
    uris: 
      - localhost:9200
    username: elastic
    password: password

啟動類加入注解@EnableElasticsearchRepositories

@EnableElasticsearchRepositories(basePackages = "com.meta.es.repositories")//repository所在的包路徑
@SpringBootApplication
public class SpringBootApplication {
	public static void main(String[] args) {
        SpringApplication.run(SpringBootApplication.class, args);
    }
}

ElasticSearchEntity

import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;
import java.util.Date;

@Data
@Document(indexName = "elastic")//indexName索引名稱等價(jià)于MySQL的表
public class ElasticSearchEntity {
    @Id
    @Field(type = FieldType.Keyword)//關(guān)鍵字在查詢的時(shí)候不會被拆分
    private String id;

    @Field(type = FieldType.Text)//字符串對應(yīng)文本類型
    private String name;

    @Field(type = FieldType.Date, format = DateFormat.date_hour_minute_second_millis)//日期類型
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    private Date createTime;

	@Field(type = FieldType.Boolean)//布爾類型
    private boolean isDelete;
}

Repository類繼承ElasticsearchRepository

import org.springframework.data.elasticsearch.annotations.Query;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import java.util.List;

//ElasticsearchRepository<實(shí)體類,主鍵類型>
public interface ElasticSearchRepository extends ElasticsearchRepository<ElasticSearchEntity,String> {
    List<ElasticSearchEntity> findByName(String name);
	
	//自定義查詢語句
    @Query("{\"match\":{\"name\":\"?0\"}}")
    List<ElasticSearchEntity> findAllByNameUsingAnnotations(String name);
}

ElasticSearchService

import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

@Service
public class ElasticSearchService {
    @Resource
    private ElasticSearchRepository elasticSearchRepository;

    /**
     * 新增/修改
     */
    public void save(final ElasticSearchEntity elasticSearchEntity) {
        this.elasticSearchRepository.save(elasticSearchEntity);
    }

    /**
     * 通過ID查詢
     */
    public ElasticSearchEntity findById(final String id){
        return this.elasticSearchRepository.findById(id).orElse(null);
    }

    /**
     * 通過ID刪除
     */
    public void deleteById(String id){
        this.elasticSearchRepository.deleteById(id);
    }

    /**
     * 通過名稱模糊查詢
     */
    public List<ElasticSearchEntity> findByName(final String name){
        return this.elasticSearchRepository.findByName(name);
    }

    /**
     * 通過使用注解名稱模糊查詢
     */
    public List<ElasticSearchEntity> findAllByNameUsingAnnotations(String name){
        return this.elasticSearchRepository.findAllByNameUsingAnnotations(name);
    }

    /**
     * 分頁
     * @param size 數(shù)量
     */
    public Page<ElasticSearchEntity> findAllByPage(int page,int size){
        //Sort sort = Sort.by(Sort.Order.desc("create_date"));//排序
        //Pageable pageable =PageRequest.of(Integer.parseInt(page), Integer.parseInt(size), sort);
        Sort sort = Sort.by(Sort.Order.desc("createTime"));//根據(jù)
        Pageable pageable =PageRequest.of(page, size, sort);
        return this.elasticSearchRepository.findAll(pageable);
    }
}

ElasticSearchController

import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

@RestController
@RequestMapping("elasticsearch")
public class ElasticSearchController {
    @Resource
    private ElasticSearchService elasticSearchService;

    /**
     * 新增/修改,如果id一致就修改,否則新增
     * @param elasticSearchEntity 實(shí)體類
     */
    @PostMapping
    public void save(@RequestBody final ElasticSearchEntity elasticSearchEntity) {
        elasticSearchService.save(elasticSearchEntity);
    }

    /**
     * 通過ID查詢
     * @param id ID
     * @return
     */
    @GetMapping("/{id}")
    public ElasticSearchEntity findById(@PathVariable final String id) {
        return elasticSearchService.findById(id);
    }

    /**
     * 通過ID刪除
     * @param id ID
     * @return
     */
    @DeleteMapping("/{id}")
    public boolean deleteById(@PathVariable String id) {
        elasticSearchService.deleteById(id);
        return true;
    }

    /**
     * 通過名稱模糊查詢
     * @param name 名稱
     * @return
     */
    @GetMapping("/name/{name}")
    public List<ElasticSearchEntity> findAllByName(@PathVariable String name) {
        return elasticSearchService.findByName(name);
    }

    /**
     * 使用注釋的方式名稱模糊查詢,即:@Query()注解
     * @param name 名稱
     * @return
     */
    @GetMapping("/name/{name}/annotations")
    public List<ElasticSearchEntity> findAllByNameAnnotations(@PathVariable String name) {
        return elasticSearchService.findAllByNameUsingAnnotations(name);
    }

    /**
     * 簡單分頁查詢
     * @param page 起始頁,默認(rèn)從0開始
     * @param size 每頁數(shù)量
     * @return
     */
    @GetMapping("/page")
    public Page<ElasticSearchEntity> findAllByPage(@RequestParam(name = "page",defaultValue = "0") int page, @RequestParam(name = "size",defaultValue = "10") int size){
        return elasticSearchService.findAllByPage(page,size);
    }

}

測試

查看創(chuàng)建的索引(相當(dāng)于MySQL的表)
method:GET

localhost:9200/_cat/indices

刪除索引
method:DELETE

localhost:9200/{索引名稱}

查看索引里的全部數(shù)據(jù),elastic是實(shí)體類@Document定義的indexName
method:GET

localhost:9200/elastic/_search

新增索引里沒有ID就是新增,有ID就是修改
Springboot集成ElasticSearch實(shí)現(xiàn)簡單的crud、簡單分頁、模糊查詢
修改索引里沒有ID就是新增,有ID就是修改
Springboot集成ElasticSearch實(shí)現(xiàn)簡單的crud、簡單分頁、模糊查詢
查詢
Springboot集成ElasticSearch實(shí)現(xiàn)簡單的crud、簡單分頁、模糊查詢
刪除
Springboot集成ElasticSearch實(shí)現(xiàn)簡單的crud、簡單分頁、模糊查詢
分頁
Springboot集成ElasticSearch實(shí)現(xiàn)簡單的crud、簡單分頁、模糊查詢
通過name模糊查詢
Springboot集成ElasticSearch實(shí)現(xiàn)簡單的crud、簡單分頁、模糊查詢文章來源地址http://www.zghlxwxcb.cn/news/detail-417314.html

到了這里,關(guān)于Springboot集成ElasticSearch實(shí)現(xiàn)簡單的crud、簡單分頁、模糊查詢的文章就介紹完了。如果您還想了解更多內(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)文章

  • SpringBoot 集成Elasticsearch簡單八步

    SpringBoot 集成Elasticsearch簡單八步

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

    2024年02月17日
    瀏覽(16)
  • Java實(shí)戰(zhàn):SpringBoot+ElasticSearch 實(shí)現(xiàn)模糊查詢

    本文將詳細(xì)介紹如何使用SpringBoot整合ElasticSearch,實(shí)現(xiàn)模糊查詢、批量CRUD、排序、分頁和高亮功能。我們將深入探討ElasticSearch的相關(guān)概念和技術(shù)細(xì)節(jié),以及如何使用SpringData Elasticsearch庫簡化開發(fā)過程。 ElasticSearch是一個(gè)基于Lucene構(gòu)建的開源搜索引擎,它提供了一個(gè)分布式、多

    2024年04月25日
    瀏覽(22)
  • Elasticsearch - 聚合獲取原始數(shù)據(jù)并分頁&排序&模糊查詢

    Elasticsearch - 聚合獲取原始數(shù)據(jù)并分頁&排序&模糊查詢

    ES版本: 7.6. 需要按照主機(jī)ID 進(jìn)行告警時(shí)間的匯總,并且還得把主機(jī)相關(guān)的信息展示出來。 注: 所有的數(shù)據(jù)都存在索引中, 通過一個(gè)DSL查詢展示 實(shí)際上就是將terms聚合的結(jié)果以列表形式分頁展示。 bucket_sort中 from不是pageNum,如想實(shí)現(xiàn)pageNum效果,from=pageNum*size即可; terms聚合

    2024年02月05日
    瀏覽(20)
  • SpringBoot整合ElasticSearch實(shí)現(xiàn)分頁查詢

    SpringBoot整合ElasticSearch實(shí)現(xiàn)分頁查詢

    本文使用SpringBoot整合ElasticSearch實(shí)現(xiàn)分頁查詢 還是繼續(xù)使用spring-boot-starter-data-elasticsearch來實(shí)現(xiàn)分頁查詢操作 數(shù)據(jù)準(zhǔn)備 使用ElasticsearchRestTemplate來實(shí)現(xiàn) 程序結(jié)果 使用ElasticsearchOperations來實(shí)現(xiàn) 程序結(jié)果 本文記錄了SpringBoot整合ElasticSearch來實(shí)現(xiàn)分頁查詢的兩種方式

    2024年01月25日
    瀏覽(19)
  • ES(Elasticsearch)+SpringBoot實(shí)現(xiàn)分頁查詢

    1.ES介紹 ??ES作為一個(gè)搜索工具,寄托于Lucene之上,提供了方便的數(shù)據(jù)存儲和搜索服務(wù),一般的用它來作為網(wǎng)頁數(shù)據(jù)索引以及存儲用戶畫像(即用戶標(biāo)簽)數(shù)據(jù),可以提供復(fù)具有復(fù)雜的查詢條件的服務(wù)。例如在網(wǎng)頁索引中,通過倒排的方式索引的方式,對文檔進(jìn)行分詞存儲,

    2024年02月16日
    瀏覽(24)
  • SpringBoot ElasticSearch 實(shí)現(xiàn)訂單的分頁查詢 【SpringBoot系列17】

    SpringBoot ElasticSearch 實(shí)現(xiàn)訂單的分頁查詢 【SpringBoot系列17】

    SpringCloud 大型系列課程正在制作中,歡迎大家關(guān)注與提意見。 程序員每天的CV 與 板磚,也要知其所以然,本系列課程可以幫助初學(xué)者學(xué)習(xí) SpringBooot 項(xiàng)目開發(fā) 與 SpringCloud 微服務(wù)系列項(xiàng)目開發(fā) elasticsearch是一款非常強(qiáng)大的開源搜索引擎,具備非常多強(qiáng)大功能,可以幫助我們從海

    2024年02月09日
    瀏覽(17)
  • 4、Elasticsearch7.6.1 Java api操作ES(CRUD、兩種分頁方式、高亮顯示)和Elasticsearch SQL詳細(xì)示例

    4、Elasticsearch7.6.1 Java api操作ES(CRUD、兩種分頁方式、高亮顯示)和Elasticsearch SQL詳細(xì)示例

    1、介紹lucene的功能以及建立索引、搜索單詞、搜索詞語和搜索句子四個(gè)示例實(shí)現(xiàn) 2、Elasticsearch7.6.1基本介紹、2種部署方式及驗(yàn)證、head插件安裝、分詞器安裝及驗(yàn)證 3、Elasticsearch7.6.1信息搜索示例(索引操作、數(shù)據(jù)操作-添加、刪除、導(dǎo)入等、數(shù)據(jù)搜索及分頁) 4、Elasticsearch7

    2024年02月16日
    瀏覽(28)
  • SpringBoot整合Elasticsearch實(shí)現(xiàn)分頁條件查詢及注意事項(xiàng)

    項(xiàng)目環(huán)境: springboot 2.3.7.RELEASE es 6.8.3 這里需要注意es中日期格式,ES默認(rèn)是不支持yyyy-MM-dd HH:mm:ss格式的,需要通過 @Field(type = FieldType.Date, format = DateFormat.custom,pattern = \\\"yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_second\\\") 來指定日期格式。 直接看業(yè)務(wù)層實(shí)現(xiàn)分頁條件查詢: 范圍查詢: es en

    2023年04月16日
    瀏覽(22)
  • Spring boot 2.3.12集成ElasticSearch7.6.2并進(jìn)行CRUD

    Spring boot 2.3.12集成ElasticSearch7.6.2并進(jìn)行CRUD

    本篇博客主要講解Spring boot 2.3.12集成ElasticSearch7.6.2并進(jìn)行CRUD操作。其它版本的spring boot集成ElasticSearch類似,只需要具體各自的版本是否匹配。通過本篇博客能夠成功集成ElasticSearch并進(jìn)行CRUD操作,適合剛接觸ElasticSearch需要進(jìn)行簡單CRUD操作的讀者。 在集成ElasticSearch之前需要明

    2023年04月08日
    瀏覽(21)
  • JavaWeb12(實(shí)現(xiàn)基礎(chǔ)分頁&模糊查詢的分頁)

    JavaWeb12(實(shí)現(xiàn)基礎(chǔ)分頁&模糊查詢的分頁)

    目錄 一. 效果預(yù)覽 ?編輯?二. 實(shí)現(xiàn)基本分頁 2.1 分頁sql ?--每頁3條? 取第二頁 --由于偽列不能作用與大于符號也不能作用于between....and --因此需要將偽列-----名列 ?2.2 萬能公式 ?2.3 首頁上一頁下一頁實(shí)現(xiàn) ②前端代碼 2.4 末頁實(shí)現(xiàn)優(yōu)化 ①底層代碼 ②前端優(yōu)化 ?三.實(shí)現(xiàn)模糊查詢

    2024年02月06日
    瀏覽(20)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包