五 、Elasticsearch分词器

5.1 分词器处理分词的组件
(1)Character filters,原始文本的预处理,通常完成HTML元素删除,替换指定字符等功能;

例如:<span>hello<span> --> hello ,& --> and,I&you --> I and you

Tokenizer,分词,按照预设的规则切分文本
   例如:hello you and me --> hello, you, and, me

(3)Token filter,切分后处理,例如大小写转换,删除停用词/stopwords,增加同义词

例如:hello you and me --> hello, you, and, me

5.2 内置分词器介绍
5.2.1 Standard Analyzer
默认分词器

按词切分,支持多语言

小写处理

支持中文采用的方法为单字切分

5.2.2 Simple Analyzer
按照非字母切分

小写处理

5.2.3 Whitespace Analyzer
空白字符作为分隔符

5.2.4 Stop Analyzer
相比Simple Analyzer多了去除请用词处理

停用词指语气助词等修饰性词语,如the, an, 的,这等

5.2.5 Keyword Analyzer
不分词,直接将输入作为一个单词输出

5.2.5 Pattern Analyzer
通过正则表达式自定义分隔符

 

5.3安装IK分词器
5.3.1下载 es版本对应的 IK 版本
5.3.2进入容器docker exec -it es bash
5.3.3通过elasticsearch-plugin install 安装对应版本
5.3.4重启容器
5.4 IK分词器使用
{
    "settings" : {
        "analysis" : {
            "analyzer" : {
                "ik" : {
                    "tokenizer" : "ik_max_word"

                }

            }

        }

    },

    "mappings" : {
        "motor_fans_short_topic" : {
            "dynamic" : true,

            "properties" : {
                  "intro" :

                  {    "type": "text",

                    "analyzer": "ik_max_word",

                    "search_analyzer": "ik_max_word"

                  },

                "title" : {
                    "type": "text",

                    "analyzer": "ik_max_word",

                    "search_analyzer": "ik_max_word"

                }

            }

        }

    }

}

 

5.5ik_max_word 和 ik_smart 什么区别
ik_max_word: 会将文本做最细粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,中华人民,中华,华人,人民共和国,人民,人,民,共和国,共和,和,国国,国歌”,会穷尽各种可能的组合,适合 Term Query

ik_smart: 会做最粗粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,国歌”,适合 Phrase 查询
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值