精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

SpringBoot整合ElasticSearch詳解及相關使用方法

云計算 分布式
Elasticsearch是一個分布式搜索引擎,它由多個節點組成,每個節點都可以獨立地存儲和處理數據。這種分布式架構使得Elasticsearch可以輕松地擴展到數百臺甚至數千臺服務器,處理大量數據。

環境:springboot2.4.12 + ElasticSearch7.8.0

簡介

Elasticsearch是一個分布式搜索引擎,底層基于Lucene實現。它屏蔽了Lucene的底層細節,提供了分布式特性,同時對外提供了Restful API。Elasticsearch以其易用性迅速贏得了許多用戶,被用在網站搜索、日志分析等諸多方面。由于ES強大的橫向擴展能力,甚至很多人也會直接把ES當做NoSQL來用。

為什么要使用ES?

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

ES為什么那么快?

Elasticsearch之所以快,主要是因為它采用了分布式架構和近實時搜索技術。

首先,Elasticsearch是一個分布式搜索引擎,它由多個節點組成,每個節點都可以獨立地存儲和處理數據。這種分布式架構使得Elasticsearch可以輕松地擴展到數百臺甚至數千臺服務器,處理大量數據。

其次,Elasticsearch采用了近實時搜索技術。當文檔被索引時,它可以在幾秒鐘內變為可搜索狀態。這種近實時搜索技術使得Elasticsearch可以快速響應用戶的搜索請求,提高搜索性能和效率。

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

最后,Elasticsearch還提供了豐富的查詢功能和優化算法,可以根據用戶的查詢需求和數據特點進行智能優化,提高搜索準確率和響應速度。

綜上所述,Elasticsearch之所以快,是因為它采用了分布式架構、近實時搜索技術、倒排索引技術和優化算法等多種技術手段,使得它可以高效地處理大量數據,快速響應用戶的搜索請求,并提高搜索準確率和響應速度。

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

相關依賴及應用配置

<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

數據模型建立

@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*等語法來寫相關查詢方法。

  • 方法名中支持的關鍵字

圖片圖片

方法返回值類型

  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);


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

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

測試

@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("很牛逼的內存條") ;
  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")) ;
  }
}

在啟動服務時會自動地為我們創建索引。

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

圖片圖片

ES集群狀態情況

圖片圖片

完畢!!!

責任編輯:武曉燕 來源: Spring全家桶實戰案例源碼
相關推薦

2023-07-03 15:55:05

語法jpa狀態

2023-05-11 08:00:44

Golangsync.Pool

2009-12-28 13:28:03

WPF視頻

2017-08-18 14:01:44

大數據dataWrangle

2023-06-28 08:34:02

Bind()函數JavaScript

2010-06-03 17:38:03

Hadoop命令

2010-06-01 19:55:30

SVN使用

2010-01-28 17:07:03

Android Gal

2009-12-02 16:04:44

PHP fsockop

2010-10-09 10:30:03

JS event

2009-08-04 08:32:06

Linux Find命Linux Find使用方法

2011-09-06 09:26:03

2023-08-09 08:01:00

WebSockett服務器web

2023-01-06 08:55:00

2012-05-11 10:13:54

2009-08-25 16:54:28

C# RichText

2010-01-25 14:10:21

C++堆棧

2009-11-30 17:43:54

PHP split()

2010-05-31 11:30:57

SVN使用

2010-11-19 09:56:38

SQLiteAndroid
點贊
收藏

51CTO技術棧公眾號

国产精品巨作av| 人妻少妇精品无码专区| 日韩影院二区| 欧美一区二区三区男人的天堂 | 色综合天天综合网中文字幕| 91麻豆精品久久久久蜜臀| 9色porny| 香蕉视频在线播放| 久久网站热最新地址| 国产美女主播一区| 日韩久久精品视频| 欧美第一精品| 亚洲欧美激情另类校园| 欧美日韩一区二区区| 日韩另类视频| 午夜精品一区二区三区免费视频| 久久久一区二区三区捆绑**| 亚洲欧美日韩在线高清直播| 91大神免费观看| 国模套图日韩精品一区二区| 一区二区久久久久久| 亚洲v国产v| 天堂在线一二区| 丁香激情综合五月| 成人性生交大片免费看视频直播| 久久久久在线视频| 亚洲高清在线| 欧美风情在线观看| 99自拍视频在线| 欧美日韩精品一区二区视频| 亚洲国产女人aaa毛片在线| 亚洲视频在线不卡| 精品自拍视频| 91高清视频免费看| 日本久久久精品视频| 毛片在线网址| 亚洲免费av高清| 国产精品亚洲天堂| 黄色av电影在线观看| 中文无字幕一区二区三区| 久久婷婷人人澡人人喊人人爽| 性中国xxx极品hd| 国产一区二区中文字幕| 国产拍精品一二三| 中文字幕人妻一区二区在线视频 | 中文字幕av一区二区三区人| 亚洲大胆美女视频| 亚洲色图欧美另类| 国产精品xxxav免费视频| 日韩午夜激情av| 永久免费看片在线观看| 国产一区二区| 欧美成人高清电影在线| 男人添女人荫蒂国产| 久久免费福利| 日韩欧美一级二级三级| 91丨porny丨九色| 一区二区日韩| 欧美mv日韩mv国产网站| 国产一卡二卡三卡四卡| 粉嫩久久久久久久极品| 亚洲加勒比久久88色综合| 无码任你躁久久久久久老妇| 另类尿喷潮videofree| 亚洲精品久久久久久下一站| 亚洲人人夜夜澡人人爽| 亚洲欧美tv| 中文字幕av一区中文字幕天堂| 激情五月深爱五月| 五月天久久777| 欧美黑人极品猛少妇色xxxxx | 在线免费av一区| 日本中文字幕高清| 99综合久久| 亚洲精品一线二线三线| 久久亚洲AV成人无码国产野外| 免费电影一区二区三区| 中文字幕亚洲自拍| 婷婷色中文字幕| 99热免费精品| 国产精品免费小视频| 国产麻豆一精品一男同| 波多野结衣中文字幕一区| 欧美大香线蕉线伊人久久| 日韩黄色影院| 午夜精品免费在线| 男女爽爽爽视频| 国产一区二区在线观| 亚洲精品国产综合区久久久久久久| 女~淫辱の触手3d动漫| 99久久精品网站| 国a精品视频大全| 国产精品无码粉嫩小泬| 国产精品一二三四区| 久久国产精品一区二区三区四区 | 亚洲国产精品三区| 涩爱av色老久久精品偷偷鲁| 亚洲欧美国产va在线影院| 国产色无码精品视频国产| 在线不卡亚洲| 国产精品一区久久久| 六月婷婷综合网| 国产精品乱码一区二区三区软件| 日韩国产成人无码av毛片| 欧美性片在线观看| 亚洲精品美女在线| 欧美人禽zoz0强交| 日韩国产欧美一区二区三区| 高清国语自产拍免费一区二区三区| 国产午夜在线视频| 亚洲国产精品欧美一二99| 亚洲小视频网站| 亚洲女娇小黑人粗硬| 久久久久国产视频| 一级做a爰片久久毛片16| 2欧美一区二区三区在线观看视频| 小说区视频区图片区| 亚洲成人va| 日韩精品丝袜在线| 九九热视频精品| 久久国产精品99精品国产| 久久精品人成| 俺来也官网欧美久久精品| 91精品国产综合久久久久久| 黄色三级生活片| 亚洲欧美日韩在线观看a三区 | 精品一级毛片| 97视频在线免费观看| 亚洲国产精品久久久久久6q | 亚洲欧美一区二区三区在线| 青青草激情视频| 极品少妇xxxx精品少妇| 五月天丁香综合久久国产| 北岛玲heyzo一区二区| 欧美精品一区二区三区久久久| 国产大学生自拍| 经典一区二区三区| 在线视频精品一区| 国产精品伦一区二区| 怡红院精品视频| 中文字幕精品无| 久久精品视频免费| 精品www久久久久奶水| 亚洲精品3区| 日韩女优人人人人射在线视频| 偷拍自拍在线| 色狠狠色狠狠综合| 少妇人妻好深好紧精品无码| 久久精品成人| 亚洲不卡中文字幕| 黄色亚洲网站| 一区二区三区视频免费| 性高潮视频在线观看| 国产精品五月天| 制服丝袜中文字幕第一页| 欧美国产小视频| 91亚洲永久免费精品| 中文字幕有码在线观看| 精品日韩一区二区| 99视频在线看| 久久综合精品国产一区二区三区| 成人羞羞国产免费网站| 精品国产精品国产偷麻豆| 国产免费成人av| 欧美人与性动交α欧美精品济南到 | 黄色片一区二区| 午夜精品福利一区二区蜜股av| 亚洲国产第一区| 日日摸夜夜添夜夜添精品视频 | 欧美18一19xxx性| 欧美一区二区三区四区久久| 全程偷拍露脸中年夫妇| 白白色亚洲国产精品| 欧洲av无码放荡人妇网站| 不卡日本视频| 91久久极品少妇xxxxⅹ软件| 国产在线天堂www网在线观看| 亚洲精品在线不卡| 91av国产精品| 精品二区三区线观看| 中文字幕第二区| 国产成人综合网站| 欧美黄网站在线观看| 欧美国产美女| 精品亚洲第一| 欧美成人xxxx| 久久久欧美精品| jzzjzzjzz亚洲成熟少妇| 日韩欧美中文一区| 黄色一级视频免费看| 亚洲欧美日韩成人高清在线一区| 国产婷婷在线观看| 丰满女人性猛交| 夜夜狠狠擅视频| 亚洲美女屁股眼交3| 日本50路肥熟bbw| 97久久中文字幕| 久久久久亚洲精品国产| 欧美日韩在线精品一区二区三区激情综 | 亚洲一区二区三区日本久久九| 久久久av网站| 天天干天天干天天干| 91色porny在线视频| 国产日韩在线观看av| 久久精品视频免费看| 精品国产免费一区二区三区四区| 玛丽玛丽电影原版免费观看1977 | 一区二区三区精| 亚洲大片精品永久免费| 18精品爽国产三级网站| 不卡一卡二卡三乱码免费网站| 亚洲一级片网站| 国产精品亚洲产品| 国产日韩欧美大片| 欧美中文一区二区| 免费看成人片| youjizzjizz亚洲| 成人性生交大片免费观看嘿嘿视频| 在线观看爽视频| 欧美精品久久一区二区| 日本高清在线观看wwwww色| 亚洲精品一区av在线播放| 亚洲免费成人网| 欧美一区午夜视频在线观看| 一区二区自拍偷拍| 日本韩国欧美国产| 天堂а√在线中文在线新版 | 91theporn国产在线观看| 色综合久久99| 91蜜桃视频在线观看| 一区二区三区 在线观看视频| 2014亚洲天堂| 一区精品在线播放| 色www亚洲国产阿娇yao| 国产欧美综合色| 国精产品一区二区三区| 91丝袜高跟美女视频| 在线精品一区二区三区| 成人黄色av网站在线| 亚洲精品久久久久久| 国产黄色精品视频| www.久久com| 国产精品一区免费视频| 国模大尺度视频| 国产高清精品在线| 久草福利在线观看| 国产成人久久精品77777最新版本| 中文字幕一区二区在线观看视频 | 色综合久久五月| 9久草视频在线视频精品| 99久久人妻精品免费二区| av免费观看久久| 激情综合闲人网| 日韩av在线免费| 天堂在线视频免费| 日韩电影中文字幕| 完全免费av在线播放| 日韩av有码在线| 日本福利片高清在线观看| 日韩精品在线免费播放| 你懂的视频在线观看| 国产香蕉97碰碰久久人人| yiren22综合网成人| 中文字幕亚洲激情| 国产免费成人在线| 久久久综合色| 韩国黄色一级大片| 欧美片第1页综合| 欧美成人高潮一二区在线看| 一本色道久久综合一区| 一本久道综合色婷婷五月| 青娱乐精品在线视频| 天天色天天综合网| 欧美aaaaaaa| 日韩在线视频导航| 97超碰在线公开在线看免费| 欧美国产精品va在线观看| 国产中文在线播放| 国产精品久久久久不卡| 亚洲综合伊人| 精品日产一区2区三区黄免费| 国产一区99| 精品国产一区二区三区在线| 一本色道久久| 九九九九九国产| 不卡电影一区二区三区| 免费看91的网站| 一区二区三区四区不卡在线| 国产剧情在线视频| 91精品国产综合久久精品性色| 色婷婷视频在线| 最近免费中文字幕视频2019| 国产精品偷拍| 国产精品欧美一区二区| 国产精品成人自拍| 欧美 日韩 国产 在线观看| 中文一区二区| 在线观看网站黄| 日本一区二区三区在线不卡| 精品视频久久久久| 欧美久久久久久蜜桃| 天天综合永久入口| 久久精品国产精品亚洲| 美女福利一区二区| 成人午夜电影在线播放| 9999国产精品| 日韩69视频在线观看| 鲁大师私人影院在线观看| 久久中文娱乐网| 九九免费精品视频| 欧美日本一道本在线视频| 日韩一卡二卡在线| 久久不射电影网| 亚洲电影有码| 欧美一区二区三区四区五区六区 | 男人添女人下部高潮视频在观看| 日本伊人精品一区二区三区观看方式 | 久久精品欧美一区二区| 制服视频三区第一页精品| 国产二区在线播放| 欧美在线一区二区三区四| 91久久偷偷做嫩草影院电| 午夜啪啪免费视频| 青青草国产成人99久久| 男人操女人动态图| 欧美性猛交xxxx乱大交极品| 人人妻人人澡人人爽久久av| 久久99视频精品| 成人性生交大片免费网站| 国产在线观看一区| 伊人精品成人久久综合软件| 中文字幕无码毛片免费看| 亚洲精品视频在线观看免费 | 亚洲精品久久久久中文字幕二区 | 欧美三级视频| 久久精品亚洲天堂| 亚洲欧洲日韩av| 一区二区的视频| 色诱女教师一区二区三区| 视频在线日韩| 日韩jizzz| 青青草国产成人99久久| 蜜桃av免费在线观看| 欧美日免费三级在线| 9191在线| 成人a级免费视频| 91精品推荐| 中文字幕乱码在线人视频| 亚洲激情成人在线| 成人免费视频国产| 欧美极品少妇全裸体| av一级亚洲| 日韩欧美国产综合在线| 久久综合狠狠综合| 久久午夜鲁丝片| 中文字幕在线视频日韩| 亚洲我射av| 国产精品igao激情视频| 成人一级片网址| 国产精品一区二区三区四| 亚洲欧洲在线播放| 久久国产三级| 在线观看18视频网站| 高清国产一区二区| 亚洲视频免费播放| 亚洲精品一二区| 亚洲国产91视频| 日本a在线天堂| 久久午夜老司机| 在线免费观看高清视频| 久久99亚洲热视| 任你弄精品视频免费观看| 成人3d动漫一区二区三区| 国产精品福利一区| 亚洲va欧美va| 欧美专区中文字幕| 欧美疯狂party性派对| 国产免费a级片| 日韩欧美在线视频免费观看| 在线观看免费黄视频| av一区二区三区在线观看| 亚洲一区欧美二区| 貂蝉被到爽流白浆在线观看| 日韩一区二区视频在线观看| 2018av在线| 一本一道久久a久久综合精品| 国产精品一级二级三级| 国产剧情在线视频| 欧美精品在线免费| 国产真实有声精品录音| 麻豆传媒在线看| 91国模大尺度私拍在线视频 | 国产精品jizz在线观看麻豆| 亚洲国产精品日韩专区av有中文| japanese在线观看| 欧美日韩国产另类不卡| 极品av在线| 公共露出暴露狂另类av| 99国产一区二区三精品乱码| 91在线公开视频|