精品欧美一区二区三区在线观看 _久久久久国色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网站| 欧美男女交配视频| 韩国日本一区| 久久精品在这里| 成人两性免费视频| 日韩欧美三级视频| 97国产成人高清在线观看| 精品国产123| www亚洲成人| av中文资源在线资源免费观看| 久久影院午夜片一区| 成人激情综合网| 青青草成人av| 亚洲女同中文字幕| 亚洲色图在线观看| 中国男女全黄大片| 成人免费视频观看| 午夜精品福利一区二区三区av| 先锋影音欧美| 无码h黄肉3d动漫在线观看| 久久99国产精品免费| 2019精品视频| 久久久99精品| 久久精品欧美一区| 一级做a爰片久久毛片美女图片| 免费观看一区二区三区| 韩国精品视频在线观看 | 精品福利在线| 日韩欧美a级成人黄色| 国产一区二区三区在线免费| 97超碰人人在线| caoporm超碰国产精品| 成人国产精品一区| 午夜一区二区三区四区| 亚洲制服少妇| 97在线视频一区| 久久久久久久福利| 中文字幕日韩一区二区不卡| 最近日韩中文字幕中文| 实拍女处破www免费看| 日韩aaa久久蜜桃av| 欧美成人a在线| 特级黄色片视频| 日韩国产一二三区| 欧美三级中文字幕在线观看| 91传媒久久久| 日韩激情电影免费看| 午夜精品123| 久操网在线观看| 波多野结衣乳巨码无在线观看| 亚洲欧美日韩国产综合| 椎名由奈jux491在线播放| 日本中文字幕在线视频| 中文字幕欧美三区| 视频在线99re| 日本在线视频网| 中文字幕一区av| 黄色免费高清视频| 成人福利在线观看视频| av毛片午夜不卡高**水| 91午夜精品| 日韩欧美视频一区| 国产成人精品综合久久久久99 | 国产中文欧美精品| 在线观看中文字幕码| 日本最新不卡在线| 国产美女直播视频一区| 国产精品久久久久久av下载红粉| 亚洲免费观看在线| 成午夜精品一区二区三区软件| 日韩一区二区三区免费观看| 性一交一黄一片| 国产精品自在| 亚洲欧美激情在线视频| 天天干天天操天天拍| 欧美电影《轻佻寡妇》| 欧美成人免费va影院高清| 久久亚洲成人av| 国产日韩一区二区三区在线播放| 国产91对白在线播放| 日韩精品一区二区亚洲av观看| 日本不卡在线视频| 91久久精品一区| 人成网站在线观看| 久久精品视频一区二区| 黄频视频在线观看| bl视频在线免费观看| 欧美午夜电影在线| 中文字幕有码av| 日韩视频一区二区三区四区| 亚洲国模精品私拍| 精品一区二区在线观看视频| 欧美精品色网| 国产精品18久久久久久麻辣| 国产特黄一级片| 91在线丨porny丨国产| 婷婷四月色综合| 伦理在线一区| 精品视频在线视频| 四虎精品一区二区| 日韩电影免费网址| 久久久久久久电影一区| 免费精品一区二区| 国产91精品在线观看| 欧美在线视频二区| 日本高清成人vr专区| 日韩欧美国产激情| 午夜免费视频网站| av中文字幕一区二区| 欧美国产日本在线| 亚洲综合精品国产一区二区三区| 成人福利在线看| 在线播放 亚洲| 天天综合网天天| 亚洲精品大尺度| 九九热最新地址| 日韩在线观看一区二区| 国产精品亚洲综合| yellow91字幕网在线| 日本韩国一区二区| 中文字幕乱码在线| 欧美精品一区二区三区久久久竹菊| 日韩美女视频在线观看| 亚洲第一天堂网| 1024精品合集| 中文字幕天天干| 国产精品免费99久久久| 91国产高清在线| 精品国产av 无码一区二区三区| 久久精品网站免费观看| 国产乱子伦农村叉叉叉| 综合久久成人| 久久这里有精品视频| 中文字幕 亚洲视频| 久久夜色精品国产噜噜av| 免费在线看黄色片| 无人区乱码一区二区三区| 日韩中文字幕网站| 中文字幕第31页| 久久精品一区二区三区四区 | 国产精品日韩精品欧美精品| 99视频在线播放| 羞羞视频在线观看免费| 日韩精品一区二区三区四区| 中文字幕电影av| 国产一区二区三区四区在线观看| 亚洲精品一区二区毛豆| 97欧美成人| 中文字幕精品网| 在线观看不卡的av| 中文字幕一区免费在线观看| 欧美成年人视频在线观看| 欧美三级情趣内衣| 国产精品久久久久久久一区探花 | 亚洲国产精品二十页| 国产天堂在线播放| 俺要去色综合狠狠| 国产日韩欧美在线视频观看| av在线中文| 正在播放亚洲一区| 精品人妻在线播放| 91视频www| 性欧美极品xxxx欧美一区二区| 国产日产一区| 91精品国产自产在线老师啪 | gai在线观看免费高清| 999国产精品视频| 91原创国产| 成人免费网站观看| 亚洲日韩第一页| 亚洲香蕉在线视频| 亚洲综合在线五月| 亚洲AV无码国产精品| 日韩福利视频导航| 潘金莲一级淫片aaaaaa播放1| 韩国三级成人在线| 97人人模人人爽人人喊中文字| 亚洲人成色777777老人头| 欧美自拍丝袜亚洲| 69av视频在线| 91麻豆精品在线观看| 国内自拍视频网| 午夜精品久久久久99热蜜桃导演| 极品校花啪啪激情久久| 欧洲av一区二区| 欧美精品一区二区三区国产精品| 成人爽a毛片一区二区| 色综合婷婷久久| 我要看一级黄色录像| 成人免费视频一区| 91精品无人成人www| 亚洲私人影院| 亚洲春色在线视频| 国产精品午夜av| 国产精品夜色7777狼人| 人妖欧美1区| 一本一本久久a久久精品综合小说 一本一本久久a久久精品牛牛影视 | 色哟哟入口国产精品| 亚洲毛片欧洲毛片国产一品色| 欧美性生交大片免费| 亚洲国产成人精品综合99| 久久久午夜电影| 深夜视频在线观看| 久久av老司机精品网站导航| 国产av麻豆mag剧集| 日韩精品诱惑一区?区三区| 精品国产乱码久久久久久108| 97人人做人人爽香蕉精品| 久久久久久久久久久av| 秋霞影院午夜丰满少妇在线视频| 亚洲第一区中文字幕| 中文字幕无码乱码人妻日韩精品| 亚洲国产精品一区二区久久恐怖片 | 综合网中文字幕| 天堂а在线中文在线无限看推荐| 欧美日韩mp4| 日韩一级在线视频| 亚洲444eee在线观看| 老熟妻内射精品一区| 欧美国产禁国产网站cc| 老司机福利av| 成人国产一区二区三区精品| 婷婷中文字幕在线观看| 秋霞电影网一区二区| 欧美日韩亚洲一| 亚洲特色特黄| 久久久久久久香蕉| 在线看片不卡| 亚洲成年人专区| 日韩理论片av| 日韩在线观看电影完整版高清免费| 久久99国产精品久久99大师| 97se国产在线视频| 日本在线一区二区三区| 91久久在线视频| 日韩在线激情| 国产日产欧美精品| 看片一区二区| 国产精品国内视频| 日本在线中文字幕一区二区三区| 欧美一区二区三区艳史| 麻豆视频在线看| 97在线看免费观看视频在线观看| 牛牛精品在线| 久久久久久久久综合| 爱情岛亚洲播放路线| 久久久视频在线| 国产夫妻在线| 97av在线影院| 免费亚洲电影| 国产精品美乳在线观看| 福利一区和二区| 国产精品稀缺呦系列在线| 日韩一区精品| 亚洲一区二区三区久久 | 美女三级黄色片| 亚洲摸摸操操av| 国产一级av毛片| 精品露脸国产偷人在视频| 国产午夜免费福利| 91黄视频在线观看| 91av久久久| 欧美草草影院在线视频| 午夜在线视频观看| 国产亚洲欧洲黄色| 黄色一级大片在线免费看产| 欧美精品一区二区三区国产精品| av不卡高清| 国产97在线播放| 欧美综合影院| 国产高清自拍一区| 久久不见久久见中文字幕免费| 日本一区二区三区免费看| 亚欧美无遮挡hd高清在线视频 | 欧美78videosex性欧美| 98视频在线噜噜噜国产| 亚洲成人短视频| 亚洲曰本av电影| 台湾色综合娱乐中文网| 亚欧精品在线| 欧美视频四区| 久久综合久久色| 国产一区视频导航| 捆绑裸体绳奴bdsm亚洲| 日本一区二区成人| 久久精品国产亚洲av高清色欲| 欧美性xxxxxxx| 国产又粗又猛又黄| 亚洲精品久久视频| 午夜视频在线看| 国模精品视频一区二区三区| 91精品xxx在线观看| 97se在线视频| 成人免费在线播放| 国内精品视频一区二区三区| 日韩1区2区3区| 日本性生活一级片| 国产精品国产三级国产普通话三级| 国产一级视频在线观看| 在线精品视频一区二区| 成人午夜精品福利免费| 少妇久久久久久| 亚洲电影观看| 91精品国产一区二区三区动漫| 香蕉久久精品日日躁夜夜躁| 天天干天天色天天爽| 久久综合五月| 最近日本中文字幕| 亚洲精品综合在线| 久久精品国产亚洲av麻豆蜜芽| 亚洲国产福利在线| a视频在线播放| 国产精品女人网站| 日韩三级av| 精品无码一区二区三区爱欲| 精品亚洲porn| 潮喷失禁大喷水aⅴ无码| 色综合激情五月| 午夜在线视频观看| 午夜精品一区二区三区在线视频 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 55夜色66夜色国产精品视频| 9l视频自拍九色9l视频成人| 黄色www在线观看| 麻豆成人久久精品二区三区小说| 亚洲AV无码片久久精品| 欧美日韩另类在线| 天天色综合av| 7777精品视频| 亚洲电影男人天堂| 免费看国产曰批40分钟| 成人毛片视频在线观看| 久久久久久久久久一区二区三区| 91精品国产高清一区二区三区| 老司机精品影院| 91亚洲国产成人久久精品网站 | 成熟丰满熟妇高潮xxxxx视频| 国产成人精品免费网站| 欧美成人黄色网| 日韩欧美久久久| 日本在线观看大片免费视频| 99免费在线观看视频| 午夜日韩电影| 亚洲啪av永久无码精品放毛片| 亚洲国产va精品久久久不卡综合| 亚洲黄色a级片| 97视频人免费观看| 一个色免费成人影院| 成年人在线看片| 国产欧美日韩精品一区| 中文字幕91爱爱| 中文字幕一区电影| 久久精品国产福利| 最新av在线免费观看| 性伦欧美刺激片在线观看| 91中文字幕永久在线| 在线国产亚洲欧美| 欧美边添边摸边做边爱免费| 青青在线视频一区二区三区| 成人一二三区| 岛国av免费在线| 亚洲国产cao| 无码国产伦一区二区三区视频 | 91影院未满十八岁禁止入内| 天天射成人网| 丰满岳乱妇一区二区| 黑人巨大精品欧美一区二区免费| 国产福利小视频在线观看| 国产精品久久久久久av| 欧美一区二区三区免费看| 日韩精品――色哟哟| 黑人巨大精品欧美一区二区一视频| 无码国产精品一区二区色情男同| 国产精品www| 成人嫩草影院| 日本黄色的视频| 亚洲成av人片在线观看无码| 午夜国产在线观看| 成人av.网址在线网站| 欧美精选一区| 国产精品天天干| 制服丝袜亚洲精品中文字幕| 蜜桃av在线| 亚洲视频小说| 91免费观看视频| 亚洲图片在线播放| 欧美亚洲视频在线观看| 日韩电影一区| 亚洲永久无码7777kkk| 欧美日韩亚洲综合一区 | 久久亚洲黄色| 奇米影视四色在线| 一级特黄大欧美久久久| 成人h小游戏| 成人免费视频视频在|