如之前所說,我們所有的索引分詞器默認為 scws,這也是我們開發(fā)的開源分詞系統(tǒng), 內(nèi)置的詞庫基本上能滿足絕大多數(shù)應(yīng)用。但總有例外,這也就是即將說的如何自定義詞庫。
這是針對同一個 xunsearch
安裝實例來講,該服務(wù)端下的所有項目都將共用這個自定義詞庫。 嚴(yán)格來講,這是 SCWS 本身就提供的功能,xunsearch 只是做了整合和規(guī)范。涉及的相關(guān)文件如下 (假設(shè) $prefix 是您的安裝目錄)
$prefix/etc/dict_user.txt
打開上述文件,文件開頭已經(jīng)有了相關(guān)注釋和說明。這個文件就是自定義詞庫文件, 如果您同一臺機器上裝有多個 xunsearch 服務(wù)端,那么每個服務(wù)端獨自使用自己的自定義詞典文件。
添加刪除修改自定義詞庫只要編輯該文件即可,以下為相關(guān)規(guī)范:
文件為純文本文件,編碼必須是 UTF-8,可用任何編輯器修改
每行一條記錄表示一個詞,每行包含 1~4 個字段,字段之間用空格或制表符(\t)分隔
字段含義依次表示 “詞語”,“詞頻(TF)”,“逆詞頻率(IDF)”,“詞性(ATTR)”
后面三個字段如果省略依次使用 scws 的默認值
特殊詞性 !
可用于表示刪除該詞
自定義詞典優(yōu)先于內(nèi)置詞典加載和使用,以 # 開頭的行為注釋
Note: 該功能自
1.2.0
版本起方可使用,源自網(wǎng)友建議。
某些情況下,不同的項目需要不同的特殊詞庫。每個搜索項目的自定義詞庫文件如下:
$prefix/data/項目名稱/dict_user.txt
文件內(nèi)容及格式與全局自定義詞庫是一致的,在此不再贅述。此外,這個文件還可以通過相關(guān)的 SDK API 讀取和修改。
XSIndex::getCustomDict 讀取當(dāng)前項目的自定義詞庫內(nèi)容,若不存在則返回空字符串
XSIndex::setCustomDict 設(shè)置當(dāng)前項目的自定義詞庫內(nèi)容,格式參見上面文檔
Note: 該功能自
1.3.4
版本起方可使用。
更多建議: