如何使用 ik 进行中文分词?
Search 的全文搜索和 ik 中文分词原理有一个全面且深入的了解。 全文搜索和精确匹配ElasticSearch 支持对文本类型数据进行全文搜索和精确搜索,但是必须提前为其设置对应的类型:
比如,创建名为 article 的索引(Index),并为其两个字段(Filed)配置映射(Mapping),文章内容设置为 text 类型,而文章标题设置为 keyword 类型。图的右半边展示了 keyword 和 text 两种类型的不同存储处理过程。而左半边则展示了 ElasticSearch 相对应的两种查询方式:
举个例子,有两篇文章,一篇的标题和内容都是“程序员”,另外一篇的标题和内容都是“程序”,那么二者在 ElasticSearch 中的倒排索引存储如下所示(假设使用特殊分词器)。时,分别使用 term 和 match 查询对两个字段进行查询,就会得出如图右侧的结果。 Analyzer 处理过程可见,keyword 与 text 类型, term 与 match 查询方式之间不同就在于是否进行了分词。在 ElasticSearch 中将这个分词的过程统称了 Text analysis,也就是将字段从非结构化字符串(text)转化为结构化字符串(keyword)的过程。 Text analysis 不仅仅只进行分词操作,而是包含如下流程: 一般来说,Analyzer 中最为重要的就是分词器,分词结果的好坏会直接影响到搜索的准确度和满意度。ElasticSearch 默认的分词器并不是处理中文分词的最优选择,目前业界主要使用 ik 进行中文分词。 ik 分词原理ik 是目前较为主流的 ElasticSearch 开源中文分词组件,它内置了基础的中文词库和分词算法帮忙开发者快速构建中文分词和搜索功能,它还提供了扩展词库字典和远程字典等功能,方便开发者扩充网络新词或流行语。 ik 提供了三种内置词典,分别是:
此外,开发者可以通过配置扩展词库字典和远程字典对上述词典进行扩展。
(编辑:应用网_丽江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |