ElasticSearch 中的中文分詞器以及索引基本操作詳解

@[toc]
本文是松哥所錄視頻教程的一個筆記款慨,筆記簡明扼要味混,完整內容小伙伴們可以參考視頻产雹,視頻下載鏈接:https://pan.baidu.com/s/1NHoe0_52ut9fDUh0A6UQLA 提取碼: kzv7

image

1.ElasticSearch 分詞器介紹

1.1 內置分詞器

ElasticSearch 核心功能就是數據檢索,首先通過索引將文檔寫入 es翁锡。查詢分析則主要分為兩個步驟:

  1. 詞條化:分詞器將輸入的文本轉為一個一個的詞條流蔓挖。
  2. 過濾:比如停用詞過濾器會從詞條中去除不相干的詞條(的,嗯盗誊,啊时甚,呢);另外還有同義詞過濾器哈踱、小寫過濾器等荒适。

ElasticSearch 中內置了多種分詞器可以供使用。

內置分詞器:

分詞器 作用
Standard Analyzer 標準分詞器开镣,適用于英語等刀诬。
Simple Analyzer 簡單分詞器,基于非字母字符進行分詞邪财,單詞會被轉為小寫字母陕壹。
Whitespace Analyzer 空格分詞器。按照空格進行切分树埠。
Stop Analyzer 類似于簡單分詞器糠馆,但是增加了停用詞的功能。
Keyword Analyzer 關鍵詞分詞器怎憋,輸入文本等于輸出文本又碌。
Pattern Analyzer 利用正則表達式對文本進行切分,支持停用詞绊袋。
Language Analyzer 針對特定語言的分詞器毕匀。
Fingerprint Analyzer 指紋分析儀分詞器,通過創(chuàng)建標記進行重復檢測癌别。

1.2 中文分詞器

在 Es 中皂岔,使用較多的中文分詞器是 elasticsearch-analysis-ik,這個是 es 的一個第三方插件展姐,代碼托管在 GitHub 上:

1.2.1 安裝

兩種使用方式:

第一種:

  1. 首先打開分詞器官網:https://github.com/medcl/elasticsearch-analysis-ik躁垛。
  2. https://github.com/medcl/elasticsearch-analysis-ik/releases 頁面找到最新的正式版,下載下來诞仓。我們這里的下載鏈接是 https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.9.3/elasticsearch-analysis-ik-7.9.3.zip缤苫。
  3. 將下載文件解壓。
  4. 在 es/plugins 目錄下墅拭,新建 ik 目錄活玲,并將解壓后的所有文件拷貝到 ik 目錄下。
  5. 重啟 es 服務谍婉。

第二種:

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.9.3/elasticsearch-analysis-ik-7.9.3.zip

1.2.2 測試

es 重啟成功后舒憾,首先創(chuàng)建一個名為 test 的索引:

image

接下來,在該索引中進行分詞測試:

image

1.2.3 自定義擴展詞庫

1.2.3.1 本地自定義

在 es/plugins/ik/config 目錄下穗熬,新建 ext.dic 文件(文件名任意)镀迂,在該文件中可以配置自定義的詞庫。

image

如果有多個詞唤蔗,換行寫入新詞即可探遵。

然后在 es/plugins/ik/config/IKAnalyzer.cfg.xml 中配置擴展詞典的位置:

image
1.2.3.2 遠程詞庫

也可以配置遠程詞庫窟赏,遠程詞庫支持熱更新(不用重啟 es 就可以生效)。

熱更新只需要提供一個接口箱季,接口返回擴展詞即可涯穷。

具體使用方式如下,新建一個 Spring Boot 項目藏雏,引入 Web 依賴即可拷况。然后在 resources/stastic 目錄下新建 ext.dic 文件,寫入擴展詞:

image

接下來掘殴,在 es/plugins/ik/config/IKAnalyzer.cfg.xml 文件中配置遠程擴展詞接口:

image

配置完成后赚瘦,重啟 es ,即可生效奏寨。

熱更新起意,主要是響應頭的 Last-Modified 或者 ETag 字段發(fā)生變化,ik 就會自動重新加載遠程擴展辭典病瞳。

視頻筆記杜恰,在公眾號江南一點雨后臺回復 elasticsearch04 獲取下載鏈接。

2. ElasticSearch 索引管理

微信公眾號江南一點雨后臺回復 elasticsearch05 下載本筆記仍源。

啟動一個 master 節(jié)點和兩個 slave 節(jié)點進行測試(參考第二集的視頻搭建)心褐。

2.1 新建索引

2.1.1 通過 head 插件新建索引

在 head 插件中,選擇 索引選項卡笼踩,然后點擊新建索引逗爹。新建索引時,需要填入索引名稱嚎于、分片數以及副本數掘而。

image

索引創(chuàng)建成功后,如下圖:

image

0于购、1袍睡、2、3肋僧、4 分別表示索引的分片斑胜,粗框表示主分片,細框表示副本(點一下框嫌吠,通過 primary 屬性可以查看是主分片還是副本)止潘。.kibana 索引只有一個分片和一個副本,所以只有 0辫诅。

2.1.2 通過請求創(chuàng)建

可以通過 postman 發(fā)送請求凭戴,也可以通過 kibana 發(fā)送請求,由于 kibana 有提示炕矮,所以這里采用 kibana么夫。

創(chuàng)建索引請求:

PUT book

創(chuàng)建成功后者冤,可以查看索引信息:

image

需要注意兩點:

  • 索引名稱不能有大寫字母
image
  • 索引名是唯一的,不能重復档痪,重復創(chuàng)建會出錯
image

2.2 更新索引

索引創(chuàng)建好之后譬嚣,可以修改其屬性。

例如修改索引的副本數:

PUT book/_settings
{
  "number_of_replicas": 2
}

修改成功后钞它,如下:

image

更新分片數也是一樣。

2.3 修改索引的讀寫權限

索引創(chuàng)建成功后殊鞭,可以向索引中寫入文檔:

PUT book/_doc/1
{
  "title":"三國演義"
}

寫入成功后遭垛,可以在 head 插件中查看:

image

默認情況下,索引是具備讀寫權限的操灿,當然這個讀寫權限可以關閉锯仪。

例如,關閉索引的寫權限:

PUT book/_settings
{
  "blocks.write": true
}

關閉之后趾盐,就無法添加文檔了庶喜。關閉了寫權限之后,如果想要再次打開救鲤,方式如下:

PUT book/_settings
{
  "blocks.write": false
}

其他類似的權限有:

  • blocks.write
  • blocks.read
  • blocks.read_only

2.4 查看索引

head 插件查看方式如下:

image

請求查看方式如下:

GET book/_settings

也可以同時查看多個索引信息:

GET book,test/_settings

也可以查看所有索引信息:

GET _all/_settings

2.5 刪除索引

head 插件可以刪除索引:

image

請求刪除如下:

DELETE test

刪除一個不存在的索引會報錯久窟。

5.6 索引打開/關閉

關閉索引:

POST book/_close

打開索引:

POST book/_open

當然,可以同時關閉/打開多個索引本缠,多個索引用 , 隔開斥扛,或者直接使用 _all 代表所有索引。

2.7 復制索引

索引復制丹锹,只會復制數據稀颁,不會復制索引配置。

POST _reindex
{
  "source": {"index":"book"},
  "dest": {"index":"book_new"}
}

復制的時候楣黍,可以添加查詢條件匾灶。

2.8 索引別名

可以為索引創(chuàng)建別名,如果這個別名是唯一的租漂,該別名可以代替索引名稱阶女。

POST /_aliases
{
  "actions": [
    {
      "add": {
        "index": "book",
        "alias": "book_alias"
      }
    }
  ]
}

添加結果如下:

image

將 add 改為 remove 就表示移除別名:

POST /_aliases
{
  "actions": [
    {
      "remove": {
        "index": "book",
        "alias": "book_alias"
      }
    }
  ]
}

查看某一個索引的別名:

GET /book/_alias

查看某一個別名對應的索引(book_alias 表示一個別名):

GET /book_alias/_alias

可以查看集群上所有可用別名:

GET /_alias

最后,松哥還搜集了 50+ 個項目需求文檔哩治,想做個項目練練手的小伙伴不妨看看哦~

image

image

image

需求文檔地址:https://github.com/lenve/javadoc

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末张肾,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子锚扎,更是在濱河造成了極大的恐慌吞瞪,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件驾孔,死亡現場離奇詭異芍秆,居然都是意外死亡惯疙,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門妖啥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來霉颠,“玉大人,你說我怎么就攤上這事荆虱≥镔耍” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵怀读,是天一觀的道長诉位。 經常有香客問我,道長菜枷,這世上最難降的妖魔是什么苍糠? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮啤誊,結果婚禮上岳瞭,老公的妹妹穿的比我還像新娘。我一直安慰自己蚊锹,他們只是感情好瞳筏,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著牡昆,像睡著了一般乏矾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上迁杨,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天钻心,我揣著相機與錄音,去河邊找鬼铅协。 笑死捷沸,一個胖子當著我的面吹牛,可吹牛的內容都是我干的狐史。 我是一名探鬼主播痒给,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼骏全!你這毒婦竟也來了苍柏?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤姜贡,失蹤者是張志新(化名)和其女友劉穎试吁,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡熄捍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年烛恤,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片余耽。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡缚柏,死狀恐怖,靈堂內的尸體忽然破棺而出碟贾,到底是詐尸還是另有隱情币喧,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布袱耽,位于F島的核電站杀餐,受9級特大地震影響,放射性物質發(fā)生泄漏扛邑。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一铐然、第九天 我趴在偏房一處隱蔽的房頂上張望蔬崩。 院中可真熱鬧,春花似錦搀暑、人聲如沸沥阳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽桐罕。三九已至,卻和暖如春桂敛,著一層夾襖步出監(jiān)牢的瞬間功炮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工术唬, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留薪伏,地道東北人。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓粗仓,卻偏偏與公主長得像嫁怀,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子借浊,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內容