国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

SpringBoot整合ElasticSearch詳解及相關(guān)使用方法

云計(jì)算 分布式
Elasticsearch是一個(gè)分布式搜索引擎,它由多個(gè)節(jié)點(diǎn)組成,每個(gè)節(jié)點(diǎn)都可以獨(dú)立地存儲和處理數(shù)據(jù)。這種分布式架構(gòu)使得Elasticsearch可以輕松地?cái)U(kuò)展到數(shù)百臺甚至數(shù)千臺服務(wù)器,處理大量數(shù)據(jù)。

環(huán)境:springboot2.4.12 + ElasticSearch7.8.0

簡介

Elasticsearch是一個(gè)分布式搜索引擎,底層基于Lucene實(shí)現(xiàn)。它屏蔽了Lucene的底層細(xì)節(jié),提供了分布式特性,同時(shí)對外提供了Restful API。Elasticsearch以其易用性迅速贏得了許多用戶,被用在網(wǎng)站搜索、日志分析等諸多方面。由于ES強(qiáng)大的橫向擴(kuò)展能力,甚至很多人也會直接把ES當(dāng)做NoSQL來用。

為什么要使用ES?

  1. 分布式特性:Elasticsearch具有分布式本質(zhì)特征,可以擴(kuò)展至數(shù)百臺甚至數(shù)千臺服務(wù)器,并處理PB量級的數(shù)據(jù)。
  2. 全文搜索能力:Elasticsearch在Lucene基礎(chǔ)上構(gòu)建,因此在全文本搜索方面表現(xiàn)十分出色。
  3. 近實(shí)時(shí)搜索:Elasticsearch是一個(gè)近實(shí)時(shí)的搜索平臺,從文檔索引操作到文檔變?yōu)榭伤阉鳡顟B(tài)之間的延時(shí)很短,一般只有一秒。因此,它非常適用于對時(shí)間有嚴(yán)苛要求的用例,例如安全分析和基礎(chǔ)設(shè)施監(jiān)測。
  4. 豐富的功能:Elasticsearch除了速度、可擴(kuò)展性和彈性等優(yōu)勢以外,還有大量強(qiáng)大的內(nèi)置功能,例如數(shù)據(jù)匯總和索引生命周期管理,可以方便用戶更加高效地存儲和搜索數(shù)據(jù)。
  5. 簡化數(shù)據(jù)處理過程:通過與Beats和Logstash進(jìn)行集成,用戶能夠在向Elasticsearch中索引數(shù)據(jù)之前輕松地處理數(shù)據(jù)。同時(shí),Kibana不僅可針對Elasticsearch數(shù)據(jù)提供實(shí)時(shí)可視化,同時(shí)還提供UI以便用戶快速訪問應(yīng)用程序性能監(jiān)測(APM)、日志和基礎(chǔ)設(shè)施指標(biāo)等數(shù)據(jù)。

ES為什么那么快?

Elasticsearch之所以快,主要是因?yàn)樗捎昧朔植际郊軜?gòu)和近實(shí)時(shí)搜索技術(shù)。

首先,Elasticsearch是一個(gè)分布式搜索引擎,它由多個(gè)節(jié)點(diǎn)組成,每個(gè)節(jié)點(diǎn)都可以獨(dú)立地存儲和處理數(shù)據(jù)。這種分布式架構(gòu)使得Elasticsearch可以輕松地?cái)U(kuò)展到數(shù)百臺甚至數(shù)千臺服務(wù)器,處理大量數(shù)據(jù)。

其次,Elasticsearch采用了近實(shí)時(shí)搜索技術(shù)。當(dāng)文檔被索引時(shí),它可以在幾秒鐘內(nèi)變?yōu)榭伤阉鳡顟B(tài)。這種近實(shí)時(shí)搜索技術(shù)使得Elasticsearch可以快速響應(yīng)用戶的搜索請求,提高搜索性能和效率。

此外,Elasticsearch還采用了倒排索引技術(shù),將文檔中的每個(gè)單詞都作為索引項(xiàng),存儲在倒排索引中。這種倒排索引技術(shù)使得Elasticsearch可以快速地定位包含特定單詞的文檔,進(jìn)一步提高了搜索性能。

最后,Elasticsearch還提供了豐富的查詢功能和優(yōu)化算法,可以根據(jù)用戶的查詢需求和數(shù)據(jù)特點(diǎn)進(jìn)行智能優(yōu)化,提高搜索準(zhǔn)確率和響應(yīng)速度。

綜上所述,Elasticsearch之所以快,是因?yàn)樗捎昧朔植际郊軜?gòu)、近實(shí)時(shí)搜索技術(shù)、倒排索引技術(shù)和優(yōu)化算法等多種技術(shù)手段,使得它可以高效地處理大量數(shù)據(jù),快速響應(yīng)用戶的搜索請求,并提高搜索準(zhǔn)確率和響應(yīng)速度。

接下來介紹如何在SpringBoot中整合ElasticSearch

相關(guān)依賴及應(yīng)用配置

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

配置文件

spring:
  elasticsearch:
    rest:
      uris:
      - http://localhost:9201
---
logging:
  level:
    com.pack: debug
    org.springframework.data.elasticsearch.core: debug

數(shù)據(jù)模型建立

@Document(createIndex = true, indexName = "products", shards = 3, replicas = 1)
public class Product {


  @Id
  private Long id ;
  @Field(analyzer = "ik_max_word", type = FieldType.Text)
  private String title ;
  @Field(type= FieldType.Keyword)
  private String category ;
  @Field(type = FieldType.Double)
  private Double price ;
  @Field(type = FieldType.Keyword, index = false)
  private String images ;
  @Override
  public String toString() {
    return "Product [id=" + id + ", title=" + title + ", category=" + category + ", price=" + price + ", images="
      + images + "]";
  }


}

ProductRepository

這里我們只需要繼承ElasticsearchRepository即可,是不是和data-jpa一樣一樣的的。

public interface ProductRepository extends ElasticsearchRepository<Product, Long> {
}

繼承ElasticsearchRepository后 我們也可以像data-jpa一樣使用findBy*等語法來寫相關(guān)查詢方法。

  • 方法名中支持的關(guān)鍵字

圖片圖片

方法返回值類型

  1. List<T>
  2. Stream<T>
  3. SearchHits<T>
  4. List<SearchHit<T>>
  5. Stream<SearchHit<T>>
  6. SearchPage<T>

Repository中也支持@Query注解的方式自定義查詢字符串。

public interface ProductRepository extends ElasticsearchRepository<Product, Long> {


  List<Product> findByTitle(String title) ;


  @Query("{\"fuzzy\": {\"title\": \"?0\"}}")
  Page<Product> findByTitle(String sex,Pageable pageable);
  // 自定義查詢
  @Query("{\"match\": {\"category\": \"?0\"}}")
  Page<Product> findByCategory(String category,Pageable pageable);


  // 高亮設(shè)置
  @Highlight(fields = {@HighlightField(name = "title"), @HighlightField(name = "category")})
  List<SearchHit<Product>> findByTitleOrCategory(String title, String category,Pageable pageable) ;
}

除了使用Repository方式,我們還可以使用ElasticsearchRestTemplate的方式請求服務(wù)。如下測試

測試

@Resource
private ProductRepository productRepository ;
@Resource
private ElasticsearchRestTemplate elasticTemplate ;


@Test
public void testCreate() {
  Product product = new Product() ;
  product.setId(3L) ;
  product.setCategory("配件") ;
  product.setPrice(299.5d) ;
  product.setImages("http://www.pack.com/memory.jpg") ;
  product.setTitle("很牛逼的內(nèi)存條") ;
  productRepository.save(product) ;
}


@Test
public void testQuery() {
  Product product = productRepository.findById(1L).orElse(null) ;
  System.out.println(product) ;
}


@Test
public void testFindAll() {
  Pageable pageable = PageRequest.of(1, 2) ;
  Page<Product> page = productRepository.findAll(pageable) ;
  System.out.println(page.getTotalPages() + "\n" + page.getContent()) ;
}


@Test
public void testTermSearch() {
  for (Product p : productRepository.findByTitle("Java從入門到精通")) {
    System.out.println(p) ;
  }
}


@Test
public void testFindByTitle() {
  Pageable pageable = PageRequest.of(0, 2) ;
  Page<Product> page = productRepository.findByTitle("Java", pageable) ;
  System.out.println(page.getTotalPages() + "\n" + page.getContent()) ;
}


@Test
public void testFindByCategory() {
  Pageable pageable = PageRequest.of(0, 2) ;
  Page<Product> page = productRepository.findByCategory("書籍", pageable) ;
  System.out.println(page.getTotalPages() + "\n" + page.getContent()) ;
}


@Test
public void testCriteriaQuery() {
  Criteria criteria = new Criteria("price").greaterThan(50).lessThan(80);
  Query query = new CriteriaQuery(criteria);
  SearchHits<Product> hits = elasticTemplate.search(query, Product.class, IndexCoordinates.of("products")) ;
  for (SearchHit<Product> hit : hits) {
    System.out.println(hit) ;
  }
}


@Test
public void testStringQuery() {
  Query query = new StringQuery("{ \"match\": { \"category\": { \"query\": \"配件\" } } } ");
  SearchHits<Product> hits = elasticTemplate.search(query, Product.class);
  for (SearchHit<Product> hit : hits) {
    System.out.println(hit) ;
  }
}


@Test
public void testStringQueryFuzzy() {
  Query query = new StringQuery("{ \"fuzzy\":{\"title\":{\"value\":\"Java\"}} }");
  HighlightQuery highlightQuery = null ;
  HighlightBuilder highBuilder = new HighlightBuilder().preTags("<font color='red'>").postTags("</font>").field("title") ;
  highlightQuery = new HighlightQuery(highBuilder) ;
  query.setHighlightQuery(highlightQuery) ;
  SearchHits<Product> hits = elasticTemplate.search(query, Product.class);
  for (SearchHit<Product> hit : hits) {
    System.out.println(hit + "\n" + hit.getHighlightField("title")) ;
  }
}

在啟動(dòng)服務(wù)時(shí)會自動(dòng)地為我們創(chuàng)建索引。

我們可以安裝Chrome插件 ElasticSearch Head非常方便地查看es的狀態(tài)及索引信息。

圖片圖片

ES集群狀態(tài)情況

圖片圖片

完畢?。。?/p>

責(zé)任編輯:武曉燕 來源: Spring全家桶實(shí)戰(zhàn)案例源碼
相關(guān)推薦

2023-07-03 15:55:05

語法jpa狀態(tài)

2023-05-11 08:00:44

Golangsync.Pool

2009-12-28 13:28:03

WPF視頻

2017-08-18 14:01:44

大數(shù)據(jù)dataWrangle

2023-06-28 08:34:02

Bind()函數(shù)JavaScript

2010-01-28 17:07:03

Android Gal

2010-10-09 10:30:03

JS event

2009-12-02 16:04:44

PHP fsockop

2011-09-06 09:26:03

2010-06-01 19:55:30

SVN使用

2010-06-03 17:38:03

Hadoop命令

2009-08-04 08:32:06

Linux Find命Linux Find使用方法

2023-08-09 08:01:00

WebSockett服務(wù)器web

2010-05-31 11:30:57

SVN使用

2010-01-25 14:10:21

C++堆棧

2009-11-30 17:43:54

PHP split()

2023-01-06 08:55:00

2009-08-25 16:54:28

C# RichText

2012-05-11 10:13:54

2010-11-19 09:56:38

SQLiteAndroid
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

超碰在线97免费| 日韩电影免费在线观看中文字幕| 91高清视频免费观看| 你懂的在线播放| 国产真实乱子伦精品视频| 亚洲欧美在线磁力| 国产对白在线| 久久国产综合精品| 欧美最猛性xxxx| 伊人春色在线观看| 国产精品理论在线观看| 一本色道婷婷久久欧美 | 久久在线视频免费观看| 久久香蕉国产线看观看av| 激情小说 在线视频| 国产精品丝袜久久久久久app| 久久国产一区二区| 国产区精品区| 欧美在线亚洲一区| jizz亚洲女人高潮大叫| 精品成人久久av| 在线免费观看av的网站| 成人动漫一区二区在线| 三区精品视频| 最新国产精品久久久| 国产精品99导航| 久久不卡国产精品一区二区 | 欧美午夜精品理论片a级按摩| 成人免费淫片免费观看| 国产精品久久久久久亚洲伦| 无码人妻丰满熟妇区毛片18| 成人精品视频一区| a天堂资源在线观看| 日产欧产美韩系列久久99| 久久久综合香蕉尹人综合网| 亚洲影视一区| 国产精品大全| 欧美国产专区| 欧美一区二区三区在线免费观看| 一本一道久久a久久精品蜜桃| 国产精品一区二区三区在线播放 | 99视频在线精品| 992tv成人免费观看| 国产成人丝袜美腿| 91传媒久久久| 亚洲一区二区在线免费看| 国产精品国产亚洲精品看不卡| 成年人国产精品| 尤物av无码色av无码| 国产精品久久久久精k8| 女同互忝互慰dv毛片观看| 欧美午夜精品一区| 黄色18在线观看| 欧美一级片在线播放| 欧美在线免费一级片| 欧美一区1区三区3区公司| 久久99九九99精品| 久久久久免费看黄a片app| 一区二区三区国产豹纹内裤在线| 在线视频尤物| 亚洲人午夜精品| 国产在线观看91一区二区三区| 成人国产1314www色视频| 粉嫩久久99精品久久久久久夜| 久草在线看片| 18久久久久久| 欧美日韩免费观看一区=区三区| 久久久999成人| 精东粉嫩av免费一区二区三区| 青青青免费视频在线2| 欧洲成人免费aa| 国产69精品久久久久毛片| 欧洲精品二区| 欧美国产视频日韩| 国产成人h网站| 免费的黄网站在线观看| 国产精品久久久久av| 91美女片黄在线观看91美女| 成人video亚洲精品| 国产精品久久久久久久久久尿| 91免费观看在线| 性欧美video另类hd尤物| 欧美视频小说| 欧美区一区二区三区| 好看的av在线不卡观看| 午夜免费性福利| 国产成人精品久久二区二区91 | 国产香蕉久久精品综合网| 国产色播av在线| 香蕉视频在线网址| 日韩经典一区二区三区| 日韩精品视频网| a级片在线免费观看| 亚洲一区二区三区午夜| 亚洲精品在线视频| 成a人片国产精品| 日韩a级大片| 97香蕉久久| 精品一区二区日本| 欧美最猛黑人xxxxx猛交| 韩国自拍一区| 影院在线观看全集免费观看| 999热视频在线观看| 日本精品一级二级| 天堂久久一区二区三区| 中文日产幕无线码一区二区| 香港三级韩国三级日本三级| 中文字幕亚洲欧美| 久久九九99视频| 成人羞羞在线观看网站| 国产中文字幕在线视频| 国产一区二区三区高清视频| 精品区一区二区| 国产欧美一区二区精品婷婷| 欧美日韩123| 国产在线视频你懂得| www.国产亚洲| 亚洲最大的网站| 在线中文字幕日韩| 无码av中文一区二区三区桃花岛| 蜜臀av国产精品久久久久| 色一区二区三区| videoxxxx另类日本极品| 日本不卡一区二区三区视频| 日韩视频精品在线| 欧美亚洲一区三区| 91久色porny| 日韩不卡一区二区| 操欧美老女人| 国产免费拔擦拔擦8x高清在线人| 在线免费视频你懂得| 欧美精品99久久| 日韩福利二区| 精品国产91| 黄色片网站在线| 欧美激情乱人伦一区| 精品国精品自拍自在线| 91搞黄在线观看| 欧美激情综合网| 国产黄色91视频| 日韩国产欧美在线观看| 国产最新精品| 亚洲一区二区av| 都市激情国产精品| 韩国精品一区| 免费污视频在线| 182在线播放| 少妇视频一区| av成人在线播放| 欧美动物xxx| 91av久久| 白白色在线观看| 高清av一区| av激情成人网| 99国产精品免费网站| 国产成人澳门| 亚州av一区| 激情综合激情| 蜜臀久久99精品久久久久久9| 国产在线乱码一区二区三区| 2023国产一二三区日本精品2022| 暴力调教一区二区三区| 亚洲精品国产第一综合99久久 | 妺妺窝人体色www看人体| 91免费视频黄| 99reav| 97caopor国产在线视频| 中文字幕21页在线看| 不卡中文字幕| 久久99精品视频| 亚洲伊人色欲综合网| 亚洲成av人乱码色午夜| 热久久免费国产视频| 亚洲国内在线| 黄色在线视频观看网站| 精品国产亚洲日本| 国产视频一区三区| 亚洲色图在线播放| 亚洲欧美福利视频| 成人午夜影院在线观看| 日韩欧美xxxx| 成人性生活视频| 男女激情无遮挡| 又黄又www| 欧美精品三级在线| 久久亚洲影院| 欧美日韩国产综合一区二区| 韩国一区二区电影| 成人在线视频一区二区三区| 91se在线| 亚洲综合色站| 精品久久久精品| 国产主播喷水一区二区| 少妇一级淫免费放| 菁菁伊人国产精品| 亚洲国产精品国自产拍av| 欧美多人爱爱视频网站| 成人在线免费播放视频| 亚洲乱码一区| 国产午夜久久久久|