elasticsearch 分詞器
1. 分詞器構造
一個分詞器——無論内置還是自定義,是一個包含三個生成塊的包:character filters, tokenizers, and token filter.(字元過濾器,斷詞,分詞過濾)
1.1. character filters
字元過濾器接收原始文本字元流并處理它——添加、删除、更改字元。
例如:從html文本中剔除<b>标簽
一個分詞器可以有0或多個字元過濾器,它們是順序執行的。
1.2. tkenizer
斷詞器負責分詞,一個分詞器隻能有一個斷詞器。
它還記錄每個token的順序,位置,及原始單詞的偏移
1.3. token filters
特征詞過濾器,負責處理斷詞器給出的清單。
lowercase轉換所有的特征詞為小寫,
stop從清單中移除停止詞(stop words)
特征詞處理器隻針對特征詞本身,不會改變它們的位置或者偏移;
特征詞處理器可以有0個或多個。
2. 案例
下面是一個自定義分詞器案例:
PUT my_index
{
"settings": {
"analysis": {
"analyzer": {
"my_custom_analyzer": {
"type": "custom",
"tokenizer": "standard",
"char_filter": [
"html_strip"
],
"filter": [
"lowercase",
"asciifolding"
]
}
}
}
}
}
轉載于:https://www.cnblogs.com/wodeboke-y/p/11562813.html