官方分词器的使用
使用分词器的格式如下
POST _analyze
{
"analyzer": "standard",
"text": "i am a good-boy"
}
其中 analyzer 参数用来指定分词器,text 位置指定需要分词的语句。
可登录 ES 官方文档-分词器 查看分词器种类,例中使用标准 standard 分词器。
标准分词器将文本划分为单词边界上的术语,如 Unicode 文本分割算法所定义。它删除了大多数标点符号。
分词结果:
{
"tokens" : [
{
"token" : "i",
"start_offset" : 0,
"end_offset" : 1,
"type" : "<ALPHANUM>",
"position" : 0
},
{
"token" : "am",
"start_offset" : 2,
"end_offset" : 4,
"type" : "<ALPHANUM>",
"position" : 1
},
{
"token" : "a",
"start_offset" : 5,
"end_offset" : 6,
"type" : "<ALPHANUM>",
"position" : 2
},
{
"token" : "good",
"start_offset" : 7,
"end_offset" : 11,
"type" : "<ALPHANUM>",
"position" : 3
},
{
"token" : "boy",
"start_offset" : 12,
"end_offset" : 15,
"type" : "<ALPHANUM>",
"position" : 4
}
]
}
可以看出,分词的结果还比较满意。分词器将该条语句分为不同 token ,每个 token 中包含几个参数。
- token :分出来的词汇或字符
- start_offset :当前词汇或字符在本语句的开始偏移量
- end_offset :当前词汇或字符在本语句的结束偏移量
- type :当前词汇或字符的类型,例中为 ALPHANUM,字母数字
- position :当前词汇或字符在整个分词分组里的坐标
再尝试一下标准分词器对中文的分词结果
POST _analyze
{
"analyzer": "standard",
"text": "青山原不老为雪白头"
}
分词结果