1,标准分词器
按单词分,中文按字分,过滤标点符号
POST /_analyze
{
"analyzer":"standard",
"text":"我是中国人,this is good MAN!"
}
2,simple分词器
去掉标点,英文按单词分,中文不分
POST /_analyze
{
"analyzer":"simple",
"text":"我是中国人,this is good MAN!"
}
3,whitespace分词器
中文按空格分,不去标点
POST /_analyze
{
"analyzer":"whitespace",
"text":"我是中国 人,this is good MAN!"
}
4,ik分词器
4.1 下载地址
https://github.com/medcl/elasticsearch-analysis-ik/releases
4.2 ik整合es
解压下载的ik分词器zip包,
并上传到/opt/dockerVolume/esVolume/elasticsearch/plugins
4.3 重启es
4.4 ik_smart,会做最粗粒度分词
POST /_analyze
{
"analyzer":"ik_smart",
"text":"中华人民共和国国歌"
}
4.5 ik_max_word,会将文本做最细粒度拆分
POST /_analyze
{
"analyzer":"ik_max_word",
"text":"中华人民共和国国歌"
}
5,索引+ik
5.1 创建索引时指定分词器
PUT /text
{
"mappings": {
"properties": {
"title":{
"type": "text",
"analyzer": "ik_max_word"
}
}
}
}
5.2 添加一条数据
PUT /text/_doc/1
{
"title":"今天是中国成立多少年,应该放中华人民共和国国歌"
}
5.3 查询
GET /text/_search
{
"query": {
"term": {
"title": {
"value": "应该"
}
}
}
}
6,扩展词停用词
6.1 扩展词
有些词语不是关键词,但是也希望被es当成关键词检索,可以把这些词放入扩展词词典
6.2 停用词
有些词语是关键词,但是业务不希望他们被检索到,可以把这些词放入词典
6.3 指定扩展词和停用词
进入/opt/dockerVolume/esVolume/elasticsearch/plugins/elasticsearch-analysis-ik-7.14.0/config目录下,
在IKAnalyzer.cfg.xml文件中配置扩展词和停用词
6.3.1 es提供了扩展词和停用词
extra_main.dic扩展词典
stopword.dic停用词典