分词组件
elasticsearch提供了几个内置的分词器:standard analyzer(标准分词器)、simple analyzer(简单分词器)、whitespace analyzer(空格分词器)、language analyzer(语言分词器),而如果我们不指定分词器类型的话,elasticsearch默认是使用标准分词器的。那接下来我们先来看看这几种分词器的特点。
ps:我们可以通过分词器测试api来看看每个分词器的特点,语法为:
POST _analyze
{
"analyzer": "分词器类型",
"text": "我是一个中国人,张姓在中国是大姓。"
}
返回的结果就是我们使用该分词器给搜索关键词分词的结果。
测试标准分词器分词效果:
通过测试结果我们可以发现,使用标准分词器的分词结果,是去掉标点符号,然后一个一个字符来分词,这就是我们上一章提到的中文搜索的问题,这显然不是我们想要的分词效果。那我们接着看下一个分词器。
测试标准分词器分词效果:
通过上面的测试结果发现,简单分词器它是通过标点符号来分词的,如果我整个搜索关键词都没有标点符号,那么它就不能分词了,以搜索关键词原样输出,这种也不是我们想要的分词效果。
测试空格分词器分词效果: