一、分词与内置分词器
1.什么是分词?
把文本转换为一个个的单词,分词称之为analysis。es默认只对英文语句做分词,中文不支持,每个中文字都会被拆分为独立的个体。
- 英文分词:Today is Wednesday!
- 中文分词:今天也是打工人!
POST /_analyze
{
"analyzer": "standard",
"text": "text文本"
}
或者
POST /my_doc/_analyze
{
"analyzer": "standard",
"field": "name",
"text": "text文本"
}
postman测试结果
2.es内置分词器
• standard:默认分词,单词会被拆分,大小会转换为小写。
• simple:按照非字母分词(不是字母的不进行分词)。大写转为小写。
• whitespace:按照空格分词。忽略大小写。
• stop:去除无意义单词,比如the/a/an/is…
• keyword:不做分词。把整个文本作为一个单独的关键词。
二、IK中文分词器
Github地址下载IK中文分词器
将下载的文件上传至服务器并解压缩到指定的位置
• zip解压: unzip xxx.zip -d ik
重启elasticsearch查看分词效果
使用IK中文分词器前:
使用IK中文分词器后:
分词效果立竿见影
三、自定义中文词库
有些情况下,我们想搜索一个字或者词语,但是一般的分词器get不到我们想搜索的词,所以会把词语进行分词,这个时候,我们就需要自定义词库,把我们想搜索的词语放在词库里面,这样分词器就会把这些词语看做一个词条进行查询
1.在{es}/plugins/ik/config下,创建:
vim custom.dic
2.添加内容:
少年
学习
慕课网
3.配置自定义扩展词典
<entry key="ext_dict">custom.dic</entry>