用ElasticSearch,一般都会自写一些特别需求的分析器(analyzer)吧,其中涉及到字符过滤器(character filter)、分词器(tokenizer)和过滤器(filter)的使用。
那么,这些涉及到的部分是如何在一次分析中执行的呢?顺序又是如何的呢?且看下文。
当一个分析器被执行时,会按如下顺序对待分析的字段做处理:
- 字符过滤器(character filter):使用字符过滤器转变字符。
- 分词器(tokenizer):将文本(档)分为单个或多个分词。
- 过滤器(filter):使用分词过滤器转变每个分词。
看着很简单是吧,事实上,理解了也确实很简单,但玩儿法其实很多。
比如一些插件提供了分词器和过滤器,你可以选择使用人家的分词器,也可以选择自己的分词器,配合插件提供的过滤器来实现目标功能。
最常见的一种用法就是pinyin插件,用自写的分词器分词,然后使用pinyin插件的首字母或者全拼的过滤器,最终将结果转换为我们所需的分析结果。
点到即止。
参考资料:
https://www.cnblogs.com/heshun/articles/10658839.html
https://blog.csdn.net/u014646662/article/details/88413779
如您从本文得到了有价值的信息或帮助,请考虑扫描文末二维码捐赠和鼓励。
如本文对您有用,捐赠和留言 将是对我最好的支持~(捐赠可转为站内积分)
如愿意,请向朋友推荐本站,谢谢。
尊重他人劳动成果。转载请务必附上原文链接,我将感激不尽。