视频类网站开发经验,合肥官网seo服务,网络工程师主要做什么,信息流推广的竞价机制是ES分词器-IK
1、为什么使用分词器#xff1f;
es在创建倒排索引时需要对文档分词#xff1b;在搜索时#xff0c;需要对用户输入内容分词。但默认的分词规则对中文处理并不友好。
我们在kibana的DevTools中测试#xff1a;
GET /_analyze
{analyzer:
es在创建倒排索引时需要对文档分词在搜索时需要对用户输入内容分词。但默认的分词规则对中文处理并不友好。
我们在kibana的DevTools中测试
GET /_analyze
{analyzer: ik_max_word,text: 程序员学习java太棒了
}语法说明 POST请求方式 /_analyze请求路径这里省略了http://192.168.12.131:9200有kibana帮我们补充 请求参数json风格 analyzer分词器类型这里是默认的standard分词器 text要分词的内容 由于kibana无法识别中文词汇在没有使用IK分词器的情况下每一个中文会逐字进行识别保存查询所以对效率和内存的耗损都有一些代价。 处理中文分词一般会使用IK分词器。IK分词器GitHub官网
安装IK分词器参考资料《安装elasticsearch.md》
ik分词器包含两种模式“analyzer”中添加
ik_smart最少切分粗粒度
ik_max_word最细切分细粒度分词之后的词语更多 问题来了ik分词器是怎样进行分词的 ik分词器是一种基于字典和规则的中文分词器其分词过程可以简要描述如下 文本预处理首先将输入的文本进行预处理包括去除特殊字符、停用词等操作。 正向最大匹配ik分词器采用正向最大匹配算法即从左向右扫描文本在词典中查找以当前位置开始的最长匹配词。 词典匹配ik分词器使用内置的词典来匹配词语。如果当前位置的字符组合在词典中找到了匹配的词语则将其作为一个词语输出。 细粒度切分当出现歧义情况时ik分词器会根据一定的规则进行细粒度切分以解决歧义问题。 返回结果最终将分词结果返回给用户用户可以根据需要进行后续的文本处理或分析。 总的来说ik分词器通过词典匹配和规则处理的方式对中文文本进行分词以实现对文本的有效切分。 2、ik分词器-拓展和停用词条
假如现在有需求字典实现个性化设置比如说不能出现有关政治或国家领导人的关键词汇过滤黄赌毒等关键词汇等还有没有意思的词语如“的”等而且词汇随着时代进步也会产生许多也需要不含在字典里面。 要拓展ik分词器的词库只需要修改一个ik分词器目录中的config目录中的IkAnalyzer.cfg.xml文件 ?xml version1.0 encodingUTF-8?
!DOCTYPE properties SYSTEM http://java.sun.com/dtd/properties.dtd
propertiescommentIK Analyzer 扩展配置/comment!--用户可以在这里配置自己的扩展字典 --entry keyext_dictext.dic/entry!--用户可以在这里配置自己的扩展停止词字典--entry keyext_stopwordsstopword.dic/entry!--用户可以在这里配置远程扩展字典 --!-- entry keyremote_ext_dictwords_location/entry --!--用户可以在这里配置远程扩展停止词字典--!-- entry keyremote_ext_stopwordswords_location/entry --
/properties然后在名为ext.dic和stopword.dic的文件中添加想要拓展的词语即可没有记得在config目录下创建 曼诺尔
雷迪亚兹
白嫖重启docker restart es测试 GET /_analyze
{analyzer: ik_smart,text: 曼诺尔雷迪亚兹真是个可恶的白嫖的人
}{tokens : [{token : 曼诺尔,start_offset : 0,end_offset : 3,type : CN_WORD,position : 0},{token : 雷迪亚兹,start_offset : 3,end_offset : 7,type : CN_WORD,position : 1},{token : 真是,start_offset : 7,end_offset : 9,type : CN_WORD,position : 2},{token : 个,start_offset : 9,end_offset : 10,type : CN_CHAR,position : 3},{token : 可恶,start_offset : 10,end_offset : 12,type : CN_WORD,position : 4},{token : 白嫖,start_offset : 13,end_offset : 15,type : CN_WORD,position : 5},{token : 的人,start_offset : 15,end_offset : 17,type : CN_WORD,position : 6}]
}