最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Springboot2.x整合ElasticSearch7.x實戰(zhàn)(二)

2021-01-14 20:03 作者:JavaPub  | 我要投稿

本教程是系列教程,對于初學者可以對 ES 有一個整體認識和實踐實戰(zhàn)。

還沒開始的同學,建議先讀一下系列攻略目錄:Springboot2.x整合ElasticSearch7.x實戰(zhàn)目錄

本篇幅是繼上一篇 Springboot2.x整合ElasticSearch7.x實戰(zhàn)(一) ,適合初學 Elasticsearch 的小白,可以跟著整個教程做一個練習。

第三章 分詞器安裝

使用搜索,少不了使用分詞器,elasticsearch 自帶了一些簡單分詞器,也可以使用第三方分詞器插件,如 ik、pinyin 等。

Standard?Analyzer?-?默認分詞器,按詞切分,小寫處理

Simple?Analyzer?-?按照非字母切分(符號被過濾),?小寫處理

Stop?Analyzer?-?小寫處理,停用詞過濾(the,a,is)

Whitespace?Analyzer?-?按照空格切分,不轉(zhuǎn)小寫

Keyword?Analyzer?-?不分詞,直接將輸入當作輸出

Patter?Analyzer?-?正則表達式,默認\W+(非字符分割)

Language?-?提供了30多種常見語言的分詞器

Customer?Analyzer?自定義分詞器

ik分詞器插件安裝

  1. 下載和elasticsearch版本一致

教程使用的是 7.7.0 版本。

  1. 準備 ik 目錄,

cd plugins && mkdir ik

  1. 下載

wget https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v7.7.0/elasticsearch-analysis-ik-7.7.0.zip 有些地方從github下載網(wǎng)絡不好,我在課件里有插件壓縮包。

  1. 解壓到對應ik目錄

解壓文件到目錄 elasticsearch-7.7.0/plugins/ik 下。

  1. 重啟es,查看是否安裝成功

curl http://localhost:9200/_cat/plugins

rest 實例:


拼音分詞器插件安裝

  1. 下載和elasticsearch版本一致

教程使用的是 7.7.0 版本。

  1. 準備 ik 目錄,

cd plugins && mkdir pinyin

  1. 下載

wget https://github.com/medcl/elasticsearch-analysis-pinyin/archive/v7.7.0.zip 有些地方從github下載網(wǎng)絡不好,我在課件放了插件的壓縮包。

  1. 解壓到對應pinyin目錄

解壓文件到目錄 elasticsearch-7.7.0/plugins/pinyin 下。

  1. 重啟es,查看是否安裝成功

curl http://localhost:9200/_cat/plugins

安裝目錄截圖

更多擴展詞庫

  • 同義詞詞庫

https://github.com/ginobefun/elasticsearch-dynamic-synonym/releases

有些情況會使用我們自己的分詞服務,后面代碼中會講解使用方式。

第四章 Elasticsearch核心概念

Elasticsearch核心概念-相關(guān)術(shù)語解析

Cluster

Elasticsearch 集群,由一臺或多臺的Elasticsearch 節(jié)點(Node)組成。

Node

Elasticsearch 節(jié)點,可以認為是Elasticsearch的服務進程,在同一臺機器上啟動兩個Elasticsearch實例(進程),就是兩個node節(jié)點。

Index

索引,具有相同結(jié)構(gòu)的文檔的集合,類似于關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)庫實例(6.0.0版本type廢棄后,索引的概念下降到等同于數(shù)據(jù)庫表的級別)。一個集群中可以有多個索引。

Type

類型,在索引中內(nèi)進行邏輯細分,在新版的Elasticsearch中已經(jīng)廢棄。

關(guān)于 type 廢棄問題,如果你需要維護低版本 elasticsearch(在7.0.0、6.*、5.6版本變化較大),一定要閱讀這篇官方英文文檔 https://www.elastic.co/guide/en/elasticsearch/reference/current/removal-of-types.html

Document

文檔,Elasticsearch中的最小的數(shù)據(jù)存儲單元,JSON數(shù)據(jù)格式,很多相同結(jié)構(gòu)的文檔組成索引。文檔類似于關(guān)系型數(shù)據(jù)庫中表內(nèi)的一行記錄。

舉個例子,一篇新聞的文檔數(shù)據(jù)。

news?document
{
?"id":"1",
?"title":"China?is?a?great?country",
?"content":"I?love?China."
}

Shard

分片,單個索引切分成多個shard,分布在多臺Node節(jié)點上存儲??梢岳胹hard很好的橫向擴展,以存儲更多的數(shù)據(jù),同時shard分布在多臺node上,可以提升集群整體的吞吐量和性能。在創(chuàng)建索引的時候可以直接指定分片的數(shù)量即可,一旦指定就不能再修改了。

Replica

索引副本,完全拷貝shard的內(nèi)容,一個shard可以有一個或者多個replica,replica就是shard的數(shù)據(jù)拷貝,以提高冗余。

replica承擔三個任務:

  1. shard故障或者node宕機時,其中的一個replica可以升級成shard

  2. replica保證數(shù)據(jù)不丟失,保證高可用

  3. replica可以分擔搜索請求,提高集群的吞吐和性能

shard 的全稱叫 primary shard,replica 全稱叫 replica shard,primary shard 數(shù)量在創(chuàng)建索引時指定,后期不能修改,replica shard 后期可以修改。默認每個索引的 primary shard 值為5,replica shard 值為1,含義是5個primary shard,5個 replica shard,共10個 shard。因此 Elasticsearch 最小的高可用配置是2臺服務器。

理解倒排索引

例如倒排索引等內(nèi)容

倒排索引相關(guān)術(shù)語

倒排索引(Inverted Index)是整個搜索的核心,倒排索引是實現(xiàn)“單詞-文檔矩陣”的一種具體存儲形式,通過倒排索引,可以根據(jù)單詞快速獲取包含這個單詞的文檔列表。倒排索引主要由兩個部分組成:“單詞詞典”和“倒排文件”。

單詞詞典(Lexicon):常索引單位是單詞,單詞詞典是由文檔集合中出現(xiàn)過的所有單詞構(gòu)成的字符串集合,單詞詞典內(nèi)每條索引項記載單詞本身的一些信息以及指向“倒排列表”的指針。

倒排列表(PostingList):倒排列表記載了出現(xiàn)過某個單詞的所有文檔的文檔列表及單詞在該文檔中出現(xiàn)的位置信息,每條記錄稱為一個倒排項(Posting)。根據(jù)倒排列表,即可獲知哪些文檔包含某個單詞。

倒排文件(Inverted File):所有單詞的倒排列表往往順序地存儲在磁盤的某個文件里,這個文件即被稱之為倒排文件,倒排文件是存儲倒排索引的物理文件。

概念關(guān)系:

簡單倒排索引實例

倒排索引從邏輯結(jié)構(gòu)和基本思路上來講非常簡單。下面我們通過具體實例來進行說明,使得大家能夠?qū)Φ古潘饕幸粋€宏觀而直接的感受。

假設有五個文檔:

通過分詞后,每個文檔就轉(zhuǎn)換為由單詞序列構(gòu)成的數(shù)據(jù)流,為了系統(tǒng)后續(xù)處理方便,需要對每個不同的單詞賦予唯一的單詞編號,同時記錄下哪些文檔包含這個單詞,在如此處理結(jié)束后,我們可以得到最簡單的倒排索引。

事實上,索引系統(tǒng)還可以記錄除此之外的更多信息。下圖是一個相對復雜些的倒排索引,與上圖的基本索引系統(tǒng)比,在單詞對應的倒排列表中不僅記錄了文檔編號,還記載了單詞頻率信息(TF),即這個單詞在某個文檔中的出現(xiàn)次數(shù),之所以要記錄這個信息,是因為詞頻信息在搜索結(jié)果排序時,計算查詢和文檔相似度是很重要的一個計算因子,所以將其記錄在倒排列表中,以方便后續(xù)排序時進行分值計算。

最后,實用的倒排索引還可以記載更多的信息,上圖所示索引系統(tǒng)除了記錄文檔編號和單詞頻率信息外,額外記載了兩類信息,即每個單詞對應的“文檔頻率信息”(以及在倒排列表中記錄單詞在某個文檔出現(xiàn)的位置信息。

“文檔頻率信息”代表了在文檔集合中有多少個文檔包含某個單詞,之所以要記錄這個信息,其原因與單詞頻率信息一樣,這個信息在搜索結(jié)果排序計算中是非常重要的一個因子。而單詞在某個文檔中出現(xiàn)的位置信息并非索引系統(tǒng)一定要記錄的,在實際的索引系統(tǒng)里可以包含,也可以選擇不包含這個信息,之所以如此,因為這個信息對于搜索系統(tǒng)來說并非必需的,位置信息只有在支持“短語查詢”的時候才能夠派上用場。

參考:https://blog.csdn.net/hguisu/article/details/7969757

微信搜:JavaPub

在看和分享是對我最大的鼓勵,我是 pub 哥,我們下期再見


Springboot2.x整合ElasticSearch7.x實戰(zhàn)(二)的評論 (共 條)

分享到微博請遵守國家法律
富顺县| 阿荣旗| 海丰县| 伊吾县| 闽清县| 开鲁县| 和田县| 大埔区| 凉城县| 彰武县| 苗栗市| 台州市| 兴山县| 灵山县| 湄潭县| 区。| 化隆| 陵川县| 洱源县| 旬邑县| 措勤县| 聂荣县| 景洪市| 西贡区| 南投县| 铁岭县| 阆中市| 桐梓县| 遂溪县| 延津县| 天长市| 佳木斯市| 鸡东县| 五台县| 始兴县| 林州市| 象山县| 青龙| 民勤县| 乐业县| 广饶县|