ElasticSearch系列五:掌握ES使用IK中文分詞器
一、內建分詞器的介紹
例:Set the shape to semi-transparent by calling set_trans(5)standard analyzer(預設):set, the, shape, to, semi, transparent, by, calling, set_trans, 5
simple analyzer:set, the, shape, to, semi, transparent, by, calling, set, trans
whitespace analyzer:Set, the, shape, to, semi-transparent, by, calling, set_trans(5)
language analyzer:set, shape, semi, transpar, call, set_tran, 5
二、測試分詞器
GET /_analyze{
"analyzer": "standard",
"text": "Text to analyze"
}
三、IK中文分詞器
1.步驟:git clone https://github.com/medcl/elasticsearch-analysis-ik
mvn package
將target/releases/elasticsearch-analysis-ik-*.*.*.zip拷貝到es/plugins/ik目錄下
在es/plugins/ik下對elasticsearch-analysis-ik-*.*.*.zip進行解壓縮
重啟es
2.兩種analyzer
ik_max_word
ik_smart: 會做最粗粒度的拆分
3.使用
PUT /my_index
{
"mappings": {
"my_type": {
"properties": {
"text": {
"type": "text",
"analyzer": "ik_max_word"
}
}
}
}
}
4.測試
GET /my_index/_analyze
{
"text": " 對於你,我始終只能以陌生人的身份去懷念。",
"analyzer": "ik_max_word"
}
5.配置檔案
IKAnalyzer.cfg.xml:用來配置自定義詞庫
main.dic:ik原生內建的中文詞庫,總共有27萬多條,只要是這些單詞,都會被分在一起
quantifier.dic:放了一些單位相關的詞
suffix.dic:放了一些字尾
surname.dic:中國的姓氏
stopword.dic:英文停用詞
6.新增自定義詞庫
IKAnalyzer.cfg.xml:ext_dict配置項,custom/mydict.dic
新增自定義停用詞庫
IKAnalyzer.cfg.xml:ext_stopwords配置項,custom/ext_stopword.dic
7.熱更新方案
- 第一種:修改ik分詞器原始碼,然後手動支援從mysql中每隔一定時間,自動載入新的詞庫
https://github.com/medcl/elasticsearch-analysis-ik/tree/v6.2.4
②修改原始碼
Dictionary類,169行:Dictionary單例類的初始化方法,在這裡需要建立一個我們自定義的執行緒,並且啟動它
HotDictReloadThread類:就是死迴圈,不斷呼叫Dictionary.getSingleton().reLoadMainDict(),去重新載入詞典
Dictionary類,389行:this.loadMySQLExtDict();
Dictionary類,683行:this.loadMySQLStopwordDict();
③mvn package打包程式碼
target\releases\elasticsearch-analysis-ik-6.2.4.zip
④解壓縮ik壓縮包
將mysql驅動jar,放入ik的目錄下
⑤將mysql驅動jar,放入ik的目錄下
⑥修改jdbc相關配置
⑦重啟es,觀察日誌
⑧在mysql中新增詞庫與停用詞
⑨分詞實驗,驗證熱更新生效
(點選下載已修改好的zip包)
- 第二種:基於ik分詞器原生支援的熱更新方案,部署一個web伺服器,提供一個http介面,通過modified和tag兩個http響應頭,來提供詞語的熱更新
相關推薦
ElasticSearch系列五:掌握ES使用IK中文分詞器
一、內建分詞器的介紹例:Set the shape to semi-transparent by calling set_trans(5)standard analyzer(預設):set, the, shape, to, semi, transparent, by, cal
搜索引擎系列四:Lucene提供的分詞器、IKAnalyze中文分詞器集成
author oid core 長度 maven項目 int get attribute clu 一、Lucene提供的分詞器StandardAnalyzer和SmartChineseAnalyzer 1.新建一個測試Lucene提供的分詞器的maven項目LuceneAn
ElasticSearch搜索引擎安裝配置中文分詞器IK插件
art linux系統 nal smart 分享 內容 分詞 search dcl 一、IK簡介 ElasticSearch(以下簡稱ES)默認的分詞器是標準分詞器Standard,如果直接使用在處理中文內容的搜索時,中文詞語被分成了一個一個的漢字,因此引入中文分詞器IK就
Elasticsearch 5.X為index指定中文分詞器ik
Elasticsearch用於json格式資料的全文檢索十分方便,但是需要一些時間來熟悉和配置。最權威的配置說明在官方文件這裡,但是由於是英文的,而且新概念和內容十分多,初學者往往不容易找到解決問題的辦法。筆者解決這篇文章中的問題就花了2天時間,所以記錄下來,方便初學者查閱。
【Elasticsearch】Elasticsearch 6.x 探索之路-中文分詞器IK
1.分詞機制 Elasticsearch對於查詢,是採取按分詞的結果進行查詢的,作為一款非國產的軟體,自然對於中文的查詢支援並不是很好,預設只會把中文拆分成單字,而通常使用都是以“詞”作為基準單位的。 我們可以使用外掛(plugins)機制去拓展Elasticsearch
Elasticsearch系列---倒排索引原理與分詞器
概要 本篇主要講解倒排索引的基本原理以及ES常用的幾種分詞器介紹。 倒排索引的建立過程 倒排索引是搜尋引擎中常見的索引方法,用來儲存在全文搜尋下某個單詞在一個文件中儲存位置的對映。通過倒排索引,我們輸入一個關鍵詞,可以非常快地獲取包含這個關鍵詞的文件列表。 我們先看英文的,假設我們有兩個文件: I have
(五)Lucene——中文分詞器
實現 ext cse ron -a tag 大小 -c .com 1. 什麽是中文分詞器 對於英文,是安裝空格、標點符號進行分詞 對於中文,應該安裝具體的詞來分,中文分詞就是將詞,切分成一個個有意義的詞。 比如:“我的中國人”,分詞:我、的、中
轉:從頭開始編寫基於隱含馬爾可夫模型HMM的中文分詞器
lan reverse single trim 地址 note str rip resources http://blog.csdn.net/guixunlong/article/details/8925990 從頭開始編寫基於隱含馬爾可夫模型HMM的中文分詞器之一 - 資
Linux下ElasticSearch6.4.x、ElasticSearch-Head、Kibana以及中文分詞器IK的安裝配置
ElasticSearch 安裝配置 下載 # 官網下載壓縮包 [[email protected] /home]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.
ElasticSearch-6.4.1安裝中文分詞器Analysis-ik.
一:使用背景和安裝過程. 1. ElasticSearch-6.4.1.(Windows環境下) &nbs
Es學習第五課, 分詞器介紹和中文分詞器配置
上課我們介紹了倒排索引,在裡面提到了分詞的概念,分詞器就是用來分詞的。 分詞器是ES中專門處理分詞的元件,英文為Analyzer,定義為:從一串文字中切分出一個一個的詞條,並對每個詞條進行標準化。它由三部分組成, Character Filters:分詞之前進行預處
elasticsearch教程--中文分詞器作用和使用
目錄 概述 環境準備 認識中文分詞器 常用的中文分詞器 IK Analyzer hanlp中文分詞器 彩蛋 概述 上一篇博文
elasticsearch安裝中文分詞器
1. 分詞器的安裝 ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.2.3/elasticsearch-analysis-ik-6.2.3.z
Elasticsearch通過docker安裝及安裝中文分詞外掛
本文講解CentOS 7通過docker安裝Elasticsearch及中文外掛安裝。 系統配置 這個配置具體作用,我也不懂,不配置的話,可能會啟動失敗 sudo sysctl -w vm.max_map_count=262144 啟動ES dock
Elasticsearch 中文分詞器IK
1、安裝說明 https://github.com/medcl/elasticsearch-analysis-ik 2、release版本 https://github.com/medcl/elasticsearch-analysis-ik/releases 3、安裝外掛 bin/elasti
第二節 Elasticsearch加入中文分詞器IK
一、簡介 Elasticsearch 內建的分詞器是standard對英文分詞還好,但對中文的支援就比較弱,所以需要另 外引入一箇中文分詞器。目前比較流行的中文分詞器有: IKAnalyzer 、 MMSeg4j、 Paoding等
java HashMap實現中文分詞器 應用:敏感詞過濾實現
今天下午部門內部技術分享是分詞器演算法。這次的主講是大名鼎鼎的Ansj分詞器的作者-孫健。 作者簡介: Ansj分詞器作者 elasticsearch-sql(elasticsearch的sql外掛)作者,支援sql查詢 nlp-lang自然語言工具包發起人 NLPCN(自然語言處理
elasticsearch 中文分詞器 elasticsearch-analysis-ik
一、IK分詞器安裝 2、在 elasticsearch-5.4.0/plugins/ 目錄下新建名為 ik 的資料夾,拷貝elasticsearch-analysis-ik-5.4.0目錄下所有的檔案到 elasticsearch-5.4.0/plugins/ik/ 目
Elasticsearch筆記六之中文分詞器及自定義分詞器
中文分詞器 在lunix下執行下列命令,可以看到本來應該按照中文”北京大學”來查詢結果es將其分拆為”北”,”京”,”大”,”學”四個漢字,這顯然不符合我的預期。這是因為Es預設的是英文分詞器我需要為其配置中文分詞器。 curlHTTP://192.168.79.131:9
Elasticsearch之中文分詞器
Elasticsearch的中文分詞器 1、單字分詞: 如:“我們是中國人” 效果:“我”“們”“是”“中”“國”“人” 2、二分法分詞:按兩個字進行切分。 如:“我們是中國人”,效果:“我們”、“們是”、“是中”、“中國”、“國人