es ik 詞庫新增詞語 ES 倒排索引與分詞

2021-10-14 08:33:40 字數 1784 閱讀 4823

索引:

-文件id到文件內容、單詞的關聯關係

-單詞到文件id的關聯關係:

-主要包含兩部分:

單詞詞典(term dictionary),由b+tree實現

-記錄所有文件的單詞,一般比較大

-記錄單詞到倒排列表的關聯關係

倒排列表(posting list)

分詞:指將文字轉換成一系列單詞(term or tokem)的過程,也可以叫做文字分析,es稱analysis,如下圖所示

分詞器:是es中專門處理分詞的元件,英文為analyzer.它的組成以及呼叫順序如下

-1.character filter

-針對原始檔案進行處理,比如去除html特殊標記符

-2.tokenizer

-將原始文字按照一定規則切分為單詞

-3.tokern filters

-針對tokenizer處理的單詞進行在加工,比如轉訊息、刪除或者新增等處理

analyzer api:es提供了乙個測試分詞的api介面,方便驗證分詞效果,endpoint是_analyze

-可以直接指定analyze進行測試

-可以直接指定索引中的字段進行測試

-可以自定義分詞器進行測試

預定義分詞器:

es自帶如下分詞器:

-standard:預設處理器,其組成入下圖,特性為:按詞切分,支援多語言;小寫處理

-******:按照非字母切分,小寫處理

-whitespace:按照空格切分

-stop:相比******多了stop word處理

(stop word 指語氣助詞等修飾性的詞語,比如the、   an、的、這 等等)

-keyword:不分詞,直接將輸入的單詞文字輸出

-pattern:

-通過正規表示式自定義分割符

-預設是\w+,即非單詞的符號作為分割

-ik-jieba

-hanlp

-thulac

自定義分詞:

- 自定義分詞需要在索引的配置中設定,如下所示:

#customize 自定義分詞器put test_index_1      }    }  }}post test_index_1/_analyze
分詞使用情況:

分詞會在如下兩個時機使用:

- 建立或者更新文件時,會對應的文件進行分詞處理

- 查詢時,會對查詢語句進行分詞

- 不指定分詞時,預設standard

- 查詢的時候通過analyze指定分詞器

擴充ibus詞庫

ibus pinyin要求最低為1.3.0 只要在詞庫目錄 就是有乙個.db檔案的那個目錄,一般是 usr share ibus pinyin db目錄 把新詞庫複製過來並改名為local.db就可以使用了,如果感覺詞庫不好直接刪除掉local.db就可以讓ibus使用原來的詞庫。具體步驟 2.解壓...

折騰詞庫,乙個詞庫互轉程式

經過兩天的努力,終於完成了我的詞庫轉換小工具,將現有詞庫的以文字格式匯出,然後選擇源詞庫格式和新詞庫格式,單擊 轉換 按鈕即可詞庫格式的轉換。放出程式截圖如圖所示 目前我這個轉換小工具還只支援純文字格式的詞庫,因為對於搜狗細胞詞庫 scel格式 和qq分類詞庫 qpyd格式 我沒有具體的解析這些詞庫...

ES Ik遠端詞典增量更新方案

2 從es ik原始碼可以看到,傳送httphead請求的時候,會攜帶es外掛程式之前儲存的資源最新更新時間 last modified 通過if modified since請求頭攜帶 和最新的資源標識etags 通過if none match請求頭攜帶 服務端接收到這兩個引數後,和服務端狀態進行...