成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Spring Boot 2.x(十七):快速入門Elastic Search

yangrd / 492人閱讀

摘要:極速的查詢速度通過有限狀態(tài)轉(zhuǎn)換器實(shí)現(xiàn)了用于全文檢索的倒排索引,實(shí)現(xiàn)了用于存儲(chǔ)數(shù)值數(shù)據(jù)和地理位置數(shù)據(jù)的樹,以及用于分析的列存儲(chǔ)。每個(gè)數(shù)據(jù)都被編入了索引。強(qiáng)大的彈性保障硬件故障。檢測(cè)這些故障并確保集群和數(shù)據(jù)的安全性和可用性。

What —— Elasticsearch是什么?

Elasticsearch是一個(gè)基于Lucene的搜索服務(wù)器,Elasticsearch也是使用Java編寫的,它的內(nèi)部使用Lucene做索引與搜索,但是它的目的是使用全文檢索變得簡(jiǎn)單,通過隱藏Lucene的復(fù)雜性,取而代之的提供一套簡(jiǎn)單一致的RESTful API。

Elasticsearch 不僅僅是 Lucene,并且也不僅僅只是一個(gè)全文搜索引擎。 它可以被下面這樣準(zhǔn)確的形容:

一個(gè)分布式的實(shí)時(shí)文檔存儲(chǔ),每個(gè)字段 可以被索引與搜索

一個(gè)分布式實(shí)時(shí)分析搜索引擎

能勝任上百個(gè)服務(wù)節(jié)點(diǎn)的擴(kuò)展,并支持 PB 級(jí)別的結(jié)構(gòu)化或者非結(jié)構(gòu)化數(shù)據(jù)

面向文檔

Elasticsearch是面向文檔,即文檔是可以被索引的信息的基本單位,而文檔的格式是在NoSQL中常用的JSON,關(guān)于關(guān)系型數(shù)據(jù)庫和Elasticsearch之間一些名詞的關(guān)系的對(duì)應(yīng)可以用以下的表格來表示,方便我們后面的應(yīng)用:

關(guān)系型數(shù)據(jù)庫 Elasticsearch
Database Index
Table Type
Row Document
Column Field
Schema Mapping

這里需要注意的是文檔的格式不是固定的,同一個(gè)Type下的不同文檔可以擁有不同的格式

Why —— 為什么選擇Elasticsearch?

豐富的查詢方式——Elasticsearch能夠執(zhí)行及合并多種類型的搜索(結(jié)構(gòu)化數(shù)據(jù)、非結(jié)構(gòu)化數(shù)據(jù)、地理位置、指標(biāo)),搜索方式隨心而變。

極速的查詢速度——Elasticsearch通過有限狀態(tài)轉(zhuǎn)換器實(shí)現(xiàn)了用于全文檢索的倒排索引,實(shí)現(xiàn)了用于存儲(chǔ)數(shù)值數(shù)據(jù)和地理位置數(shù)據(jù)的 BKD 樹,以及用于分析的列存儲(chǔ)。每個(gè)數(shù)據(jù)都被編入了索引。

可觀的可擴(kuò)展性——Elasticsearch能夠水平擴(kuò)展,每秒鐘可處理海量事件,同時(shí)能夠自動(dòng)管理索引和查詢?cè)诩褐械姆植挤绞?,可以在承載了 PB 級(jí)數(shù)據(jù)的成百上千臺(tái)服務(wù)器上運(yùn)行。

強(qiáng)大的彈性保障——硬件故障。網(wǎng)絡(luò)分割。Elasticsearch 檢測(cè)這些故障并確保集群(和數(shù)據(jù))的安全性和可用性。通過跨集群復(fù)制功能,輔助集群可以作為熱備份隨時(shí)投入使用。

How —— 如何在Spring Boot實(shí)戰(zhàn)中使用Elasticsearch? 安裝Elasticsearch

https://www.elastic.co/cn/dow...

這里我們選擇的是6.2.2版本的ES,因?yàn)槲以趕pring-data-elasticsearch的github上看到最新版本的支持的ES是6.2.2

其中3.2.x版本尚未發(fā)布正式版,所以這里選擇了最新的3.1.8版本,下面我們切換到安裝目錄的bin目錄下,啟動(dòng)es:

./elasticsearch &

這里添加 & 符號(hào)的作用是讓它在后臺(tái)運(yùn)行。

看到這個(gè)就說明啟動(dòng)成功了~

安裝中文分詞器iK

因?yàn)?,在我們?nèi)粘5膽?yīng)用中,我們用的比較多的都是中文的分詞,所以這里我們需要一個(gè)中文的分詞器

首先前往github上下載與ES版本對(duì)應(yīng)的zip包

https://github.com/medcl/elas...

然后在es的安裝目錄下的plugins下新建一個(gè)ik的目錄,將zip包解壓到該目錄下重啟es即可~

在es的啟動(dòng)日志中看到這個(gè)說明插件已經(jīng)安裝并啟動(dòng)成功!
到這里,我們的前期準(zhǔn)備工作就已經(jīng)結(jié)束了,下面的就是在Spring Boot項(xiàng)目中進(jìn)行操作了~

添加pom依賴

我們首先在pom.xml中添加spring-data-elasticsearch的依賴(敲黑板??!這里的版本一定要去參考一下對(duì)應(yīng)的ES的版本,不然就會(huì)引起版本兼容性問題而報(bào)錯(cuò)!):

      
            org.springframework.data
            spring-data-elasticsearch
            3.1.8.RELEASE
        

依賴已經(jīng)添加完畢,下面我們就通過簡(jiǎn)單的配置來完成CRUD

CRUD

這里的配置需要注意一個(gè)點(diǎn),我們?cè)L問的9200是HTTP的端口號(hào),而使用Java的時(shí)候需要配置成9300:

spring:
  data:
    elasticsearch:
      cluster-name: my-applicatioon
      cluster-nodes: 127.0.0.1:9300

在啟動(dòng)日志中,我們可以看到這一點(diǎn):

然后我們通過注解來完成一個(gè)index和mapping的創(chuàng)建(即對(duì)應(yīng)關(guān)系型數(shù)據(jù)庫中的庫和表)

@Data
@Document(indexName = "test",type = "article")
public class Article implements Serializable {

    private Long id;

    @Field(type= FieldType.Text,analyzer = "ik_max_word")
    private String title;

    private String content;
}

@Filed注解中的屬性可以對(duì)分詞器進(jìn)行配置analyzer = "ik_max_word",這樣就可以在查詢標(biāo)題的時(shí)候使我們的中文分詞器了~

這樣,我們就創(chuàng)建了一個(gè)index(database)名為test,并新建一個(gè)type(table)名為article。

下面,我們?nèi)绻胍瓿蒀RUD,只需要?jiǎng)?chuàng)建一個(gè)接口去繼承ElasticsearchRepository即可,如下:

public interface ESDao extends ElasticsearchRepository {
}

然后,我們就可以在我們項(xiàng)目這樣去用了~

和JPA一樣方便,我們這時(shí)就可以把ES當(dāng)做MySQL去操作即可~

項(xiàng)目中用到的對(duì)應(yīng)版本的包我已經(jīng)上傳到了百度網(wǎng)盤,關(guān)注公眾號(hào)回復(fù)“ES”即可獲取。
完整的Demo代碼我已經(jīng)上傳到了github,歡迎fork star pr

https://github.com/viyog/viboot

原創(chuàng)不易,謝謝支持!

公眾號(hào)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/76121.html

相關(guān)文章

  • 慕課網(wǎng)_《ElasticSearch入門》學(xué)習(xí)總結(jié)

    摘要:時(shí)間年月日星期四說明本文部分內(nèi)容均來自慕課網(wǎng)。那么里面的數(shù)據(jù)就可以分為各種各樣的索引,比如汽車索引圖書索引家具索引等等。圖書索引又可以細(xì)分為各種類型,比如科普類小說類技術(shù)類等等。具體到每一本書籍,就是文檔,就是整個(gè)圖書里面最小的存儲(chǔ)單位。 時(shí)間:2017年09月14日星期四說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)源碼:無學(xué)習(xí)源碼:https...

    notebin 評(píng)論0 收藏0
  • Elastic Search搜索引擎在SpringBoot中的實(shí)踐

    摘要:注本文首發(fā)于公眾號(hào),可長按或掃描下面的小心心來訂閱實(shí)驗(yàn)環(huán)境版本版本首先當(dāng)然需要安裝好環(huán)境,最好再安裝上可視化插件來便于我們直觀地查看數(shù)據(jù)。 showImg(https://segmentfault.com/img/remote/1460000015723674); 注: 本文首發(fā)于 My 公眾號(hào) CodeSheep ,可 長按 或 掃描 下面的 小心心 來訂閱 ↓ ↓ ↓ showI...

    Me_Kun 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<