管理與使用詞庫
阿里云Elasticsearch Serverless(簡稱ES Serverless)允許用戶上傳和管理詞庫,提供更為靈活高效的檢索能力,使得用戶能夠根據(jù)業(yè)務需求靈活地自定義和調整分詞策略,助力企業(yè)級用戶構建智能、高性能的搜索與分析系統(tǒng)。
前提條件
已創(chuàng)建檢索場景的應用。具體操作,請參見創(chuàng)建應用。
管理詞庫
- 登錄阿里云Elasticsearch控制臺。
在左側導航欄,單擊Elasticsearch Serverless版本。
說明如果您所在的地域沒有Elasticsearch Serverless服務,請在頂部菜單欄切換地域。
在Elasticsearch Serverless服務控制臺的左側導航欄,單擊應用管理。
在應用管理頁面,單擊目標應用名稱。
在左側導航欄,單擊詞庫管理,管理詞庫。
詞庫列表中顯示詞庫文件名、詞庫類型、詞庫來源、文件大小和詞條數(shù),并支持添加、下載、更新和刪除詞典文件。
添加自定義詞庫。
單擊添加自定義詞庫,在彈出的對話框中配置詞庫。
參數(shù)
說明
詞庫來源
上傳文件:上傳本地詞庫
添加OSS路徑:上傳OSS中存放的詞庫
詞庫類型
ik分詞
ik停用詞
說明上傳的停用詞詞庫會自動合并到分詞詞庫中。
選擇OSS Bucket
選擇與應用在同一個地域的存放目標詞庫的OSS Bucket。
選擇文件
詞庫來源為上傳文件時,通過單擊或拖拽上傳本地詞庫。
詞庫來源為添加OSS路徑時:
目錄名稱需包含es-serverless,或為OSS Bucket添加es-serverless:es-serverless標簽。
添加詞典文件:選擇詞典所在的OSS文件目錄,并選擇需要添加的詞典文件。
說明僅支持dic格式的詞典文件,且詞典文件采用UTF8編碼方式。
上傳詞庫時,如果已有同名同類詞庫,系統(tǒng)會覆蓋原有詞庫。
更新詞庫配置。
在目標詞庫的操作列,單擊更新,在彈出的對話框中修改詞庫來源和更新后的詞庫文件。
說明不允許更改詞庫名稱和類型。
選擇的詞庫名稱需要與源詞庫名稱相同。
下載詞庫。
在目標詞庫的操作列,單擊下載,直接下載對應txt、dic文件到本地。
刪除已添加的詞庫。
在目標詞庫的操作列,選擇
,單擊確認,刪除詞庫。
ik分詞詞庫使用
本文中的命令,均可在Kibana控制臺中執(zhí)行。登錄Kibana控制臺,請參見登錄Kibana控制臺。
前提條件
已上傳一個或多個ik自定義分詞詞庫或停用詞詞庫。
測試分詞
執(zhí)行以下代碼測試分詞效果。
# 可以進行分詞測試,指定analyzer為 "ik_smart" or "ik_max_word"
GET /_analyze
{
"text": "中華人民共和國國歌",
"analyzer": "ik_smart"
}
返回結果如下。
{
"tokens" : [
{
"token" : "中華人民共和國",
"start_offset" : 0,
"end_offset" : 7,
"type" : "CN_WORD",
"position" : 0
},
{
"token" : "國歌",
"start_offset" : 7,
"end_offset" : 9,
"type" : "CN_WORD",
"position" : 1
}
]
}
插入數(shù)據(jù)并驗證分詞
執(zhí)行以下代碼插入數(shù)據(jù)并驗證分詞。
# 創(chuàng)建索引并指定mapping中某個字段的分詞為"ik_max_word",進行數(shù)據(jù)插入并查詢分詞驗證
PUT /my_index
{
"mappings": {
"my_type": {
"properties": {
"text": {
"type": "text",
"analyzer": "ik_max_word"
}
}
}
}
}
#插入數(shù)據(jù)
POST /my_index/_doc/
{
"text": "我是中國人,我愛我的祖國"
}
GET /my_index/_analyze
{
"analyzer": "ik_max_word",
"text": "我是中國人,我愛我的祖國"
}
返回結果如下。
{
"tokens" : [
{
"token" : "我",
"start_offset" : 0,
"end_offset" : 1,
"type" : "CN_CHAR",
"position" : 0
},
{
"token" : "中國人",
"start_offset" : 2,
"end_offset" : 5,
"type" : "CN_WORD",
"position" : 1
},
{
"token" : "中國",
"start_offset" : 2,
"end_offset" : 4,
"type" : "CN_WORD",
"position" : 2
},
{
"token" : "國人",
"start_offset" : 3,
"end_offset" : 5,
"type" : "CN_WORD",
"position" : 3
},
{
"token" : "我",
"start_offset" : 6,
"end_offset" : 7,
"type" : "CN_CHAR",
"position" : 4
},
{
"token" : "愛我",
"start_offset" : 7,
"end_offset" : 9,
"type" : "CN_WORD",
"position" : 5
},
{
"token" : "祖國",
"start_offset" : 10,
"end_offset" : 12,
"type" : "CN_WORD",
"position" : 6
}
]
}