一、基本了解
1.1 插件分類
- 插件是用戶以自定義方式增強(qiáng)es功能的一種方法,分兩類,核心插件和社區(qū)貢獻(xiàn)插件。
- 插件太多,只需要熟悉插件的安裝流程即可,根據(jù)項(xiàng)目需要再自行安裝。
核心插件:
- 核心插件屬于es項(xiàng)目,插件的版本號(hào)始終與es安裝包的版本號(hào)相同,這些插件由es團(tuán)隊(duì)維護(hù)。
- 項(xiàng)目地址
![]()
社區(qū)貢獻(xiàn)插件:
- 社區(qū)貢獻(xiàn)插件屬于es項(xiàng)目外部的插件。這些插件由單個(gè)開(kāi)發(fā)人員或私人公司提供,并擁有各自的許可證及各自的版本控制系統(tǒng)。
1.2 插件管理命令
1.列出當(dāng)前已安裝的插件。這里顯示的就是我們已經(jīng)安裝了一個(gè)ik分詞器插件。
[es-qingjun@localhost bin]$ elasticsearch-plugin list
2.安裝插件。
[es-qingjun@localhost bin]$ elasticsearch-plugin install analysis-icu
3.刪除插件。
[es-qingjun@localhost bin]$ elasticsearch-plugin remove analysis-icu
- 我們可以使用相關(guān)命今獲取插件命令的使用說(shuō)明:$es_home/bin/elasticsearch-plugin - h
1.插件位置指定
當(dāng)在根目錄中運(yùn)行 Elasticsearch 時(shí),如果使用 DEB 或RPM 安裝了 Elasticsearch,則以根目錄運(yùn)行 /usr /share / Elasticsearch/ bin /Elasticsearch-plugin,以便 Elasticsearch 可以寫(xiě)入磁盤(pán)的相應(yīng)文件,否則需要以擁有所有 Elasticsearch 文件的用戶身份運(yùn)行 bin/ Elasticsearch 插件當(dāng)用戶自定義URL 或文件系統(tǒng)時(shí),用戶可以通過(guò)指定 URL 直接從自定義位置下載插件:
sudo bin / elasticsearch - plugin install [url]
二、分析插件
基本了解:
- 分析器會(huì)接受一個(gè)字符串作為輸入?yún)?shù),將這個(gè)字符串拆分成獨(dú)立的詞或語(yǔ)匯單元(也稱之為 token)。
- 在處理過(guò)程中會(huì)丟棄一些標(biāo)點(diǎn)符號(hào)等字符,處理后會(huì)輸出一個(gè)語(yǔ)匯單元流(也稱之為 token stream)。
- es為很多語(yǔ)言提供了專用的分析器,特殊語(yǔ)言所需的分析器可以由用戶根據(jù)需要以插件的形式提供。
分析器組成的三個(gè)部分:
- character filter: 分詞之前的預(yù)處理,過(guò)濾HTML標(biāo)簽、特殊符號(hào)轉(zhuǎn)換等。
- tokenizer:用于分詞。
- token filter:用于標(biāo)準(zhǔn)化輸出。
es內(nèi)置的主要分析器:
- Standard分析器:默認(rèn)的分詞器,會(huì)將詞匯單元轉(zhuǎn)換成小寫(xiě)形式,并且去除停用詞和標(biāo)點(diǎn)符號(hào),支持中文(采用的方法為單字切分)。停用詞指語(yǔ)氣助詞等修飾性詞語(yǔ),如 the、an、的、這等。
- Simple分析器:首先通過(guò)非字母字符分割文本信息,并去除數(shù)字類型的字符,然后將詞匯單元統(tǒng)一為小寫(xiě)形式。
- Whitespace分析器:僅去除空格,不會(huì)將字符轉(zhuǎn)換成小寫(xiě)形式,不支持中文:不對(duì)生成的詞匯單元進(jìn)行其他標(biāo)準(zhǔn)化處理。
- Stop分析器:與Simple 分析器相比,增加了去除停用詞的處理。
- Keyword分析器:該分析器不進(jìn)行分詞,而是直接將輸入作為一個(gè)單詞輸出。
- Pattern分析器:該分析器通過(guò)正則表達(dá)式自定義分隔符,默認(rèn)是“]W+”,即把非字詞的符號(hào)作為分隔符。
- Language分析器:這是特定語(yǔ)言的分析器,不支持中文,支持如 English、French 和Spanish 等蠻豆頹逼磺糯敢奇害弋亭纜忸俠子補(bǔ)。
注意事項(xiàng):
- 任何全文檢索的字符串域都會(huì)默認(rèn)使用 Standard 分析器。
Standard分析器簡(jiǎn)介:
- 工作模式:一般來(lái)說(shuō),分析器會(huì)接受一個(gè)字符串作為輸入。在工作時(shí),分析器會(huì)將這個(gè)字符串拆分成獨(dú)立的詞或語(yǔ)匯單元(稱之為 token),當(dāng)然也會(huì)丟棄一些標(biāo)點(diǎn)符號(hào)等字符,最終分析器輸出一個(gè)語(yǔ)匯單元流。
- 常規(guī)分析器使用算法:Whitespace 分詞算法。
- 該算法按空白字符,如空格、Tab、換行符等,對(duì)語(yǔ)句進(jìn)行簡(jiǎn)單的拆分,將連續(xù)的非空格字符組成一個(gè)語(yǔ)匯單元。
- 例如,對(duì)下面的語(yǔ)句使用 Whitespace 分詞算法分詞時(shí),會(huì)得到如下結(jié)果:
原文:You're the lst runner home! 結(jié)果: You're、the、st、runner、home!
- Standard 分析器使用算法: Unicode 文本分制算法。
- 可以尋找單詞之間的界限,并輸出所有界限之間的內(nèi)容。
- Unicode 內(nèi)包含的知識(shí)使其可以成功地對(duì)包含混合語(yǔ)言的文本進(jìn)行分詞。
2.1 es中的分析插件
分析插件是一類插件,可通過(guò)向es中添加新的分析器、標(biāo)記化器、標(biāo)記過(guò)濾器或字符過(guò)濾器等擴(kuò)展es的分析功能。
2.1.1 官方核心分析插件
插件名稱 | 作用 |
---|---|
ICU庫(kù) | 可以擴(kuò)展對(duì) Unicode 的支持, 包括更好地分析亞洲語(yǔ)言、Unicode 規(guī)范化、 支持 Unicode 的大小寫(xiě)折疊、支持排序和音譯。 |
Kuromoji 插件 | 對(duì)日語(yǔ)進(jìn)行分析 |
Lucene Nori 插件 | 對(duì)韓語(yǔ)進(jìn)行分析 |
Phonetic 插件 | 可以使用 Soundex、Metaphone、Caverphone 和其他編碼器/解碼器將標(biāo)記分析為其語(yǔ)音等價(jià)物。 |
SmartCN插件 | 可用于對(duì)中文或中英文混合文本進(jìn)行分析。 該插件利用概率知識(shí)對(duì)簡(jiǎn)化中文文本進(jìn)行最優(yōu)分詞。 首先文本被分割成句子,然后每個(gè)句子再被分割成單詞。 |
Stempel插件 | 對(duì)波蘭語(yǔ)進(jìn)行分析 |
Ukrainian 插件 | 為烏克蘭語(yǔ)提供詞干分析 |
2.1.2 社區(qū)提供分析插件
插件名稱 | 作用 |
---|---|
IK Analysis Plugin | 將 Lucene IK Analyzer 集成到 Elasticsearch 中,支持讀者自定義字典 |
Pinyin Analysis Plugin | 一款拼音分析插件,該插件可對(duì)漢字和拼音進(jìn)行相互轉(zhuǎn)換。 |
Vietnamese Analysis Plugin | 對(duì)越南語(yǔ)進(jìn)行分析 |
Network Addresses Analysis Plugin | 可以用于分析網(wǎng)絡(luò)地址。 |
Dandelion Analysis Plugin | 可譯為蒲公英分析插件,該插件提供了一個(gè)分析器(稱為“蒲公英-A”),該分析器會(huì)從輸入文本中提取的實(shí)體進(jìn)行語(yǔ)義搜索。 |
STConvert Analysis Plugin | 可對(duì)中文簡(jiǎn)體和繁體進(jìn)行相互轉(zhuǎn)換 |
2.2 API擴(kuò)展插件
- API擴(kuò)展插件通過(guò)添加新的、與搜索有關(guān)的 API 或功能,實(shí)現(xiàn)對(duì)es新功能的添加。
- es社區(qū)人員陸陸續(xù)續(xù)貢獻(xiàn)了不少API擴(kuò)展插件編輯器,匯總?cè)缦拢?/li>
插件名稱 | 作用 |
---|---|
Carrot2 Plugin | 用于結(jié)果聚類。 可訪問(wèn) GitHub 官網(wǎng)搜索 elasticsearch-carrot2,查看配套代碼。 |
Elasticsearch Trigram Accelerated Regular Expression Filter | 該插件包括查詢、過(guò)濾器、原生腳本、評(píng)分函數(shù),以及用戶最終創(chuàng)建的任意其他內(nèi)容,通過(guò)該插件可以讓搜索變得更好。 可訪問(wèn) GitHub 官網(wǎng)搜索 search-extra 獲取插件。 |
Elasticsearch Experimental Highlighter | Java 編寫(xiě),用于文本高亮顯示。 可訪問(wèn) GitHub 官網(wǎng),搜索 search-highlighter 獲取插件。 |
Entity Resolution Plugin | 該插件使用 Duke (Duke 是一個(gè)用 Java 編寫(xiě)的、快速靈活的、刪除重復(fù)數(shù)據(jù)的引擎)進(jìn)行重復(fù)檢測(cè)。讀者可訪問(wèn) GitHub 官網(wǎng),搜索 elasticsearch-entity-resolution 獲取插件 |
Entity Resolution Plugin(zentity) | 用于實(shí)時(shí)解析es中存儲(chǔ)的實(shí)體信息。 可訪問(wèn) GitHub 官網(wǎng),搜索zentity 獲取插件。 |
POL language Plugin | 該插件允許用戶使用簡(jiǎn)單的管道查詢語(yǔ)法對(duì)es進(jìn)行查詢。 可訪問(wèn) GitHub官網(wǎng),搜索 elasticsearch-pql 獲取插件。 |
Elasticsearch Taste Plugin | 該插件基于 Mahout Taste 的協(xié)同過(guò)濾算法實(shí)現(xiàn)。 可訪問(wèn) GitHub 官網(wǎng),搜索elasticsearch-taste 獲取插件。 |
WebSocket Change Feed Plugin | 該插件允許客戶端創(chuàng)建到es節(jié)點(diǎn)的 WebSocket 連接,并從數(shù)據(jù)庫(kù)接收更改的提要。 可訪問(wèn) GitHub 官網(wǎng),搜索 es-change-feed-plugin 獲取插件 |
三、Head 插件
- es-head插件在0.x-2.x版本時(shí),是集成在elasticsearch內(nèi)的。由elasticsearch的bin/elasticsearch-plugin來(lái)管理插件,從2.x版本跳到了5.x版本后,head就作用了一個(gè)獨(dú)立的服務(wù)來(lái)運(yùn)行了。
- Elasticsearch 5之后則需要將elasticsearch-head服務(wù)單獨(dú)運(yùn)行,并且支持Chrome的插件方式或者Docker容器運(yùn)行方式。
- 這個(gè)插件我們前面已經(jīng)安裝過(guò),這里就介紹下具體怎么玩它。
插件簡(jiǎn)介:
- Head 插件,全稱為 elasticsearch-head,是一個(gè)界面化的集群操作和管理工具,可以對(duì)集群進(jìn)行“傻瓜式”操作。
- 既可以把 Head 插件集成到 Elasticsearch 中,也可以把 Head 插件當(dāng)成-個(gè)獨(dú)立服務(wù)。
主要功能:
- 顯示es集群的拓?fù)浣Y(jié)構(gòu),能夠執(zhí)行索引和節(jié)點(diǎn)級(jí)別的操作。
- 在搜索接口能夠查詢es集群中原始JSON 或表格格式的數(shù)據(jù)。
- 能夠快速訪問(wèn)并顯示es集群的狀態(tài)。
3.1 安裝
1.安裝node.js環(huán)境,注意版本不要太高,不然會(huì)跟linux本身的依賴庫(kù)包版本沖突報(bào)錯(cuò)。
[root@localhost bck]# tar zxf node-v16.9.0-linux-x64.tar.gz
[root@localhost bck]# mv node-v16.9.0-linux-x64 /usr/local/node
[root@localhost bck]# tail -2 /etc/profile
export node_home=/usr/local/node
export PATH=$node_home/bin:$PATH
[root@localhost bck]# source /etc/profile
[root@localhost bck]# node -v
v16.9.0
2.解壓es-head安裝包,安裝依賴。注意這里需要進(jìn)入解壓出來(lái)的目錄里執(zhí)行命令。下載地址
#安裝cnpm
[root@localhost elasticsearch-head-5.0.0]# npm install -g cnpm --registry=https://registry.npm.taobao.org
#安裝依賴
[root@localhost elasticsearch-head-5.0.0]# cnpm install
3.啟動(dòng)es-head
[root@localhost elasticsearch-head-5.0.0]# npm run start
4.訪問(wèn)頁(yè)面。
5.修改es配置文件,添加如下兩行,解決跨域問(wèn)題。
[root@localhost elasticsearch-8.5.2]# vi config/elasticsearch.yml
http.cors.enabled: true
http.cors.allow-origin: "*"
6.重啟es,es-head就可以連接es了。
3.2 web頁(yè)面使用
Head 插件首頁(yè)由 4 部分組成:節(jié)點(diǎn)地址輸入?yún)^(qū)域、信息刷新區(qū)域、導(dǎo)航條、概覽中的集群信息匯總。
3.2.1 概覽頁(yè)
- 第一部分:節(jié)點(diǎn)地址輸入?yún)^(qū)域。這里輸入es集群任意一個(gè)節(jié)點(diǎn)IP就可以查看集群所有狀態(tài)和數(shù)據(jù)。
![]()
- 第二部分:信息刷新區(qū)域。
- 刷新區(qū)域可以查看es相關(guān)的信息和刷新插件的信息。
2. 信息區(qū)域可以看到es相關(guān)的信息,包括集群節(jié)點(diǎn)信息、節(jié)點(diǎn)狀態(tài)、集群狀態(tài)集群信息、集群健康值等內(nèi)容。單擊對(duì)應(yīng)的按鈕,即可查看對(duì)應(yīng)的信息。
![]()
- 第三部分:導(dǎo)航條??吹礁庞[、索引、數(shù)據(jù)瀏覽、基本查詢和復(fù)合查詢五個(gè) Tab 導(dǎo)航,默認(rèn)為概覽。
![]()
- 第四部分:概覽中的集群信息匯總??梢钥吹絜s已經(jīng)創(chuàng)建的索引,這些索引信息包含了索引的名稱、索引的大小和索引的數(shù)據(jù)量,并且通過(guò)“信息”和“動(dòng)作”兩個(gè)按鈕可以查看索引信息,或者給索引創(chuàng)建別名。
![]()
- 第五部分:集群健康值。es中有專門(mén)的衡量索引健康狀況的標(biāo)志,分為三個(gè)等級(jí):
- green,綠色。代表所有的主分片和副本分片都已分配,集群是 100% 可用的。
- yellow,黃色。所有的主分片已經(jīng)分片了,但至少還有一個(gè)副本是缺失的,不會(huì)有數(shù)據(jù)丟失,所以搜索結(jié)果依然是完整的。不過(guò)高可用性在某種程度上會(huì)被弱化。如果更多的分片消失,就會(huì)丟數(shù)據(jù)了??梢园?yellow 想象成一個(gè)需要及時(shí)調(diào)查的警告。
- red,紅色。至少一個(gè)主分片以及它的全部副本都在缺失中。意味缺少數(shù)據(jù),搜索只能返回部分?jǐn)?shù)據(jù),而分配到這個(gè)分片上的寫(xiě)入請(qǐng)求會(huì)返回一個(gè)異常。
- 當(dāng)只有一臺(tái)主機(jī)時(shí),索引的健康狀況是 yellow。因?yàn)橐慌_(tái)主機(jī),集群沒(méi)有其他的主機(jī)可以做副本,所以說(shuō),這就是一個(gè)不健康的狀態(tài),因此集群也是十分有必要的。
![]()
- 第六部分:索引分片。Elasticsearch數(shù)據(jù)就存儲(chǔ)在這些分片中。每一個(gè)方框就是elasticsearch的分片,粗線方框是es的主分片,主分片旁邊細(xì)線方框是es的備份分片,對(duì)應(yīng)關(guān)系,粗線方框0的備份分片是細(xì)線方框0,以此類推。
![]()
3.2.1.1 unassigned問(wèn)題解決
副本分片作用:
- 主要目的是為了故障轉(zhuǎn)移,為備份數(shù)據(jù)。如果持有主分片的節(jié)點(diǎn)掛掉了,一個(gè)副本分片就會(huì)晉升為主分片的角色。
產(chǎn)生unassigned問(wèn)題原因:
- 副本分片和主分片不能放在同一個(gè)節(jié)點(diǎn)上,在這里集群里只有一個(gè)節(jié)點(diǎn),副本分片沒(méi)有辦法分配到其他的節(jié)點(diǎn)上,所以出現(xiàn)所有副本分片都是未分配的情況。因?yàn)橹挥幸粋€(gè)節(jié)點(diǎn),如果存在主分片節(jié)點(diǎn)掛掉了,那么整個(gè)集群理應(yīng)就掛掉了,不存在副本分片升為主分片的情況。
![]()
處理手段:
- 將每個(gè)索引的副本數(shù)重置為0即可解決這個(gè)未知節(jié)點(diǎn)問(wèn)題。“number_of_replicas”:0
![]()
3.2.2 索引頁(yè)
- 可以查看當(dāng)前es集群中的索引情況。
1.新建索引。
2.查看。
3.2.3 數(shù)據(jù)瀏覽頁(yè)
- 可以查看特定索引下的數(shù)據(jù)。
3.2.4 基本查詢頁(yè)
匹配方式:
- must子句:文檔必須匹配 must 查詢條件,相當(dāng)于“=”。
- should子句:文檔應(yīng)該匹配 should 子查詢的一個(gè)或多個(gè)條件。
- must_not子句:文檔不能匹配該查詢條件,相當(dāng)于“!=”。
- term:表示的是精確匹配。
- wildcard:表示的是通配符匹配。
- prefix:表示的是前綴匹配。
- range:表示的是區(qū)間查詢。
![]()
注意事項(xiàng):
- 當(dāng)用多個(gè)查詢條件進(jìn)行搜索或查詢時(shí),需要注意多個(gè)查詢條件間的匹配方式。
- 匹配方式主要有3種,即must、should 和mus_not。
- “+”“_”按用于增加查詢條件或減少查詢條件。
![]()
- 在查詢結(jié)果展示區(qū)域中,用戶可以設(shè)置數(shù)據(jù)的呈現(xiàn)形式,如 table、JSON、CVS 表格等還可以勾選“顯示查詢語(yǔ)句”選項(xiàng),呈現(xiàn)通過(guò)表單內(nèi)容拼接的搜索語(yǔ)句。
![]()
3.2.4.1 term指定查詢
3.2.4.2 range范圍查詢
3.2.4.3 多條件查詢
3.2.5 復(fù)合查詢頁(yè)
基本了解:
- “復(fù)合查詢”標(biāo)簽頁(yè)可以自由拼接條件,進(jìn)行復(fù)雜的數(shù)據(jù)查詢。
- “復(fù)合查詢”標(biāo)簽頁(yè)為用戶提供了編寫(xiě) RESTful接口風(fēng)格的請(qǐng)求,用戶可以使用JSON 進(jìn)行復(fù)雜的查詢,比如發(fā)送 PUT 請(qǐng)求新增及更新索引,使用 delete 請(qǐng)求刪除索引等。
![]()
RESTful API的基本格式:
- http://ip:port/索引/類型/文檔ID
![]()
配置接口的四個(gè)選項(xiàng):
- 在es中,以POST 方法自動(dòng)生成ID,而 PUT 方法需要指明ID。
- 請(qǐng)求方法與HTTP 的請(qǐng)求方法相同,如 GET、PUT、POST、DELETE 等。
- 還可以配置查詢JSON 請(qǐng)求數(shù)據(jù)、請(qǐng)求對(duì)應(yīng)的es節(jié)點(diǎn)和請(qǐng)求路徑。
- 支持配置JSON驗(yàn)證器對(duì)用戶輸入的JSON 請(qǐng)求數(shù)據(jù)進(jìn)行JSON 格式校驗(yàn)。
- 支持重復(fù)請(qǐng)求計(jì)時(shí)器配置重復(fù)請(qǐng)求的頻率和時(shí)間。
- 在結(jié)果轉(zhuǎn)換器中支持使用 JavaScript 表達(dá)式變換結(jié)果。
![]()
3.2.5.1 查詢數(shù)據(jù)
- 查詢。查詢索引111中編號(hào)為1的文檔。
3.2.5.2 插入數(shù)據(jù)
新增數(shù)據(jù)有兩種方式,POST和PUT,兩者的區(qū)別就是POST自動(dòng)生成文檔編號(hào),也可以指定,而PUT需要指定文檔編號(hào)生成。
1.post方式指定id生成。
2.post方式不指定id生成會(huì)是隨機(jī)生成一個(gè)id。
3.put方式指定id生成。
3.2.5.3 查詢所有文檔
3.2.5.4 布爾查詢
- must:文檔必須匹配這些條件才能被搜索出來(lái)。
- must_not:文檔必須不匹配這些條件才能被搜索出來(lái)。
- should:如果滿足這些語(yǔ)句中的任意語(yǔ)句,則將增加搜索排名結(jié)果 score; 否則,對(duì)查詢結(jié)果無(wú)任何影響。其主要作用是修正每個(gè)文檔的相關(guān)性得分。
- filter:表示必須匹配,但它是以不評(píng)分的過(guò)濾模式進(jìn)行的。這些語(yǔ)句對(duì)評(píng)分沒(méi)有貢獻(xiàn)只是根據(jù)過(guò)濾標(biāo)準(zhǔn)排除或包含文檔。
注意事項(xiàng):
- 如果沒(méi)有 must 語(yǔ)句,那么需要至少匹配其中的一條 should 語(yǔ)句。但如果存在至少一條 must 語(yǔ)句,則對(duì) should 語(yǔ)句的匹配沒(méi)有要求。
- 查看匹配”qingjun“,且不匹配”baimu“的文檔。
{
"query": {
"bool": {
"must": [
{
"match": {
"name": "qingjun"
}
}
],
"must_not": [
{
"match": {
"name": "baimu"
}
}
]
}
}
}
3.2.5.5 創(chuàng)建索引庫(kù)
四、ik分詞器
什么是IK分詞器 ?
- 分詞:即把一段中文或者別的劃分成一個(gè)個(gè)的關(guān)鍵字,我們?cè)谒阉鲿r(shí)候會(huì)把自己的信息進(jìn)行分詞,會(huì)把數(shù)據(jù)庫(kù)中或者索引庫(kù)中的數(shù)據(jù)進(jìn)行分詞,然后進(jìn)行一個(gè)匹配操作,默認(rèn)的中文分詞是將每個(gè)字看成一個(gè)詞,比如“我愛(ài)狂神"會(huì)被分為"我"“愛(ài)”“狂"神”,這顯然是不符合要求的,所以我們需要安裝中文分詞器ik來(lái)解決這個(gè)問(wèn)題。
注意事項(xiàng):
- 如果要使用中文,建議使用ik分詞器 !
- ik提供了兩個(gè)分詞算法:ik_smat 和ik_max_word,其中 ik_mart 為最少切分,ik_max_word為最細(xì)粒度劃分!一會(huì)我們測(cè)試!
常用配置文件:
- IKAnalyzer.cfg.xml:用來(lái)配置自定義詞庫(kù)。
- main.dic:ik原生內(nèi)置的中文詞庫(kù),總共有27萬(wàn)多條,只要是這些單詞,都會(huì)被分在一起,最常用的文件。
- quantifier.dic:存放了一些單位相關(guān)的詞。
- suffix.dic:存放了一些后綴。
- surname.dic:中國(guó)的姓氏。
- stopword.dic:包含了英文的停用詞,停用詞 stop word ,比如 a 、the 、and、 at 、but 等會(huì)在分詞的時(shí)候直接被干掉,不會(huì)建立在倒排索引中。
![]()
4.1 Windows安裝
1.下載ik分詞器安裝包,注意下載版本需要與安裝的es版本一致。github下載地址
2.將下載的壓縮包解壓到我們本地安裝es根目錄下的plugins目錄。我這里新增加了一個(gè)ik目錄是為了好區(qū)分,該目錄下的所有文件就是解壓出來(lái)的。
3.重啟es,包括與之相關(guān)的所有服務(wù)kibana。重啟再啟動(dòng)后能讀到分詞器,日志就會(huì)顯示。
4.可以通過(guò)elasticsearch-plugin命令查看加載進(jìn)來(lái)的插件,這里就顯示了一個(gè)ik插件。
5.啟動(dòng)kibana測(cè)試。
get _analyze ##get請(qǐng)求,_analyze為請(qǐng)求對(duì)象(分詞器)。下面括號(hào)內(nèi)容為請(qǐng)求要求。
{
"analyzer": "ik_smart", ##選中ik分詞器。
"text": "跟我一起學(xué)運(yùn)維" ##分哪個(gè)詞。
}
ik_smart為最少切分,是將一句話按段切分出來(lái)的,分出來(lái)的內(nèi)容沒(méi)有重復(fù)的字。
ik_max_word最小粒度劃分,窮盡所有組合,會(huì)出現(xiàn)重復(fù)的字。
這里就出現(xiàn)了一個(gè)問(wèn)題,把“學(xué)運(yùn)維”三個(gè)字拆分了,我不需要將這三個(gè)字拆分,應(yīng)該是一個(gè)組合詞,該怎么辦?自己去添加詞庫(kù)。
6.進(jìn)入ik分詞器安裝目錄下的config目錄,手動(dòng)創(chuàng)建一個(gè)文檔,以dic結(jié)尾,里面添加我們想要的詞。
7.將新建的文檔名稱添加到IKAnalyzer.cfg.xml文件中。
8.重啟es和kibana。
9.再次查看kibana上的分詞效果。此時(shí)“學(xué)運(yùn)維”就是我們添加再詞庫(kù)里的詞,而不是切分開(kāi)來(lái);用最小粒度查看就多了一個(gè)“學(xué)運(yùn)維”詞,之前是沒(méi)有這個(gè)詞的。
4.2 Linux安裝
1.同樣需要準(zhǔn)備ik分詞器的安裝包,版本最好與es、kibana版本一致。我們還是解壓到es的插件目錄里,方便管理。
2.進(jìn)入config目錄,自定義分詞。
- 第一種,在默認(rèn)詞庫(kù)里添加后在重啟es、kibana服務(wù),測(cè)試效果。
- 第二種,新建自定義分詞庫(kù),再重啟es和kibana,測(cè)試效果。
4.3 自定義停用詞詞典
- 上面我們已經(jīng)自定義了“學(xué)運(yùn)維”一詞,在分詞時(shí)可以把這三個(gè)字排一起當(dāng)成一個(gè)詞分出來(lái)。
- 當(dāng)然也可以自定義停用詞詞典,比如了、的、啥、么,我不像搜索這樣的詞出來(lái)。
1.比如我想在能把“吧”這個(gè)詞搜索出來(lái),對(duì)我沒(méi)有實(shí)際意義,就可以把它單獨(dú)停用。
2.在ik/config目錄下自定義個(gè)文件,里面添加不像分的詞,再添加到IKAnalyzer.cfg.xml文件里,最后重啟es和kibana。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-631723.html
3.重啟后在測(cè)試,就不會(huì)有“吧”這個(gè)詞了。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-631723.html
到了這里,關(guān)于elasticsearch基礎(chǔ)6——head插件安裝和web頁(yè)面查詢操作使用、ik分詞器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!