日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringBoot日记——ElasticSearch全文检索

發布時間:2025/4/16 javascript 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot日记——ElasticSearch全文检索 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  看到標題的那一串英文,對于新手來說一定比較陌生,而說起檢索,應該都知道吧。

  這個ElasticSearch目前我們的首選,他主要有可以提供快速的存儲、搜索、分析海量數據的作用。他是一個分布式搜索服務,提供了Restful API,底層基于Lucene(一個開源的搜索引擎工具包),使用shard的分片方式保證數據安全,且有自動resharding功能。我們知道的github、維基百科等這類網站,都是采用這個服務的。

elasticsearch的安裝

  這里在使用前還要說明一點,很重要的:elasticsearch默認占用2G的堆內存空間,一般直接啟用的話,一定會報錯,所以我們還要做相應的處理才可以。

  1)、首先是使用docker拉取該容器

docker pull elasticsearch
// 若拉取較慢,可以使用國內的docker加速
docker pull registry.docker-cn.com/library/elasticsearch

  2)、啟動鏡像(限制內存占用的啟動,9200是該引擎常用端口,9300是作為分布式使用時,各個節點的通信端口)

docker run -e ES_JAVA_OPTS="-Xms256m -Xms256m" -d -p 9200:9200 -p 9300:9300 --name ES_01 73e6fdf8bd4f

  3)、檢查一下,是否啟動成功了,瀏覽器中鍵入 你服務器的ip:9200,打開以后是這樣的,表示成功了~:(不要在意這個炫酷的json格式,是瀏覽器插件~)

  

elasticsearch的測試

  1)、首先我們來看下官方文檔(放心,中文的!):https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html

  這里有最簡單實用的安裝和使用方法。我們先打開一個簡單的示例,試一下:

  按照這份文檔,我們使用postman或jmeter等接口的工具來測試一下吧:

  按照文檔,我們使用put參數,地址格式: 服務器ip:9200/索引名稱/類型名稱/文件id? 。可見創建成功了,返回了true。
  將 HTTP 命令由?PUT?改為?GET?可以用來檢索文檔,同樣的,可以使用?DELETE?命令來刪除文檔,以及使用?HEAD?指令來檢查文檔是否存在。如果想更新已存在的文檔,只需再次?PUT?。

  整合到springboot中

  好的,我們看看如何把這個整合到springboot中吧。(另外注意下:我們的springboot的版本盡量在2.0+,這樣你安裝的elasticsearch的版本才能匹配到,不然運行的時候會有鏈接報錯)

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

  SpringBoot默認支持兩種技術與ES進行交互:Jest和SpringData ElasticSearch,而默認Jest是不生效的,想要使用,就要自己加載jest的jar包了。本文不做相關介紹,后邊有需求,我可以單獨補一篇文章。這里主要來說一下SpringData ElasticSearch的使用。

  1)、首先我們啟動主程序之前要添加一下的配置參數,然后直接啟動主程序,看看是否可以正常運行。

spring.data.elasticsearch.cluster-name=elasticsearch  #這里在瀏覽器中輸入 服務器id:9200 就可以看到這個name是什么了 spring.data.elasticsearch.cluster-nodes=127.0.0.1:9300 #這里寫的是 服務器id:9300

  我們看到啟動正常,并且add添加了這個9300的端口啟動信息。

  2)、接下來我們按照官網文檔的兩種寫法,進行測試:

    1.編寫一個ElasticSearchRepository(有需要增刪改查的后邊自己補吧),一個需要用到的Book(注意注解的使用)。

import org.springframework.data.elasticsearch.annotations.Document;@Document(indexName = "oooodin", type = "book") public class Book {private Integer id;private String bookName;private String author;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getBookName() {return bookName;}public void setBookName(String bookName) {this.bookName = bookName;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}@Overridepublic String toString() {return "Book{" +"id=" + id +", bookName='" + bookName + '\'' +", author='" + author + '\'' +'}';} } import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;public interface BookRepository extends ElasticsearchRepository<Book, Integer> { }

  然后來測試一下看看(創建一個測試類):

@RunWith(SpringRunner.class) @SpringBootTest public class RedisTest {@AutowiredBookRepository bookRepository;@Testpublic void test01() {Book book = new Book();book.setId(1);book.setBookName("晉升");book.setAuthor("ice");bookRepository.index(book);}}

  然后我們通過瀏覽器訪問一下:

  服務器ip:9300 就可以訪問看到我們添加的內容了。

?

轉載于:https://www.cnblogs.com/iceb/p/9517659.html

總結

以上是生活随笔為你收集整理的SpringBoot日记——ElasticSearch全文检索的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。