亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

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

yangrd / 571人閱讀

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

What —— Elasticsearch是什么?

Elasticsearch是一個(gè)基于Lucene的搜索服務(wù)器,Elasticsearch也是使用Java編寫(xiě)的,它的內(nèi)部使用Lucene做索引與搜索,但是它的目的是使用全文檢索變得簡(jiǎn)單,通過(guò)隱藏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ù)庫(kù)和Elasticsearch之間一些名詞的關(guān)系的對(duì)應(yīng)可以用以下的表格來(lái)表示,方便我們后面的應(yīng)用:

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

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

Why —— 為什么選擇Elasticsearch?

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

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

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

強(qiáng)大的彈性保障——硬件故障。網(wǎng)絡(luò)分割。Elasticsearch 檢測(cè)這些故障并確保集群(和數(shù)據(jù))的安全性和可用性。通過(guò)跨集群復(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è)就說(shuō)明啟動(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è)說(shuō)明插件已經(jīng)安裝并啟動(dòng)成功!
到這里,我們的前期準(zhǔn)備工作就已經(jīng)結(jié)束了,下面的就是在Spring Boot項(xiàng)目中進(jìn)行操作了~

添加pom依賴(lài)

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

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

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

CRUD

這里的配置需要注意一個(gè)點(diǎn),我們?cè)L問(wèn)的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):

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

@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",這樣就可以在查詢(xún)標(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)盤(pán),關(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://www.ezyhdfw.cn/yun/76121.html

相關(guān)文章

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

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

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

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

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

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

0條評(píng)論

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