知识分享之Golang——Bleve中的Text Analysis简单了解
背景
知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。
知识分享系列目前包含Java、Golang、Linux、Docker等等。
开发环境
- 系统:windows10
- 语言:Golang
- 组件库:Bleve
- golang版本:1.17
- 组件官网:http://blevesearch.com/
- 组件仓库:https://github.com/blevesearch/bleve
- 开源协议:Apache-2.0 License
内容
本节我们进行了解一下Bleve中的Text Analysis文本分析器,文本分析器是将我们输入的文本转换为一系列已分析术语的过程,说白了就是分词器,Analysis是在索引时完成的,将输入文档(文本)转换为索引词。Analysis也在查询时进行生效,用以将查询时输入的文本转换为我们将要搜索的索引词形式,这样更利于索引的匹配。
Analysis(分析器、分词器)用于将输入文本转换为用于索引的标记流。在Bleve中Analysis是由多个模块组件构成的。
- Character Filters 字符过滤器,其主要是从输入中取出不需要的字符,例如取出空格、隐形字符等等。
- Tokenizers 断词,分割输入串到token令牌流。我们在使用时通常会将一些关键词创建一个标记,要想让这些标记生效,这里我们就需要用到它了。
- Token Filters 令牌过滤器,一系列令牌过滤器链接在一起,用来对令牌流执行额外的处理。
目前官方支持的语言有
丹麦语、荷兰语、英语、芬兰、法语、匈牙利、意大利语、德语、挪威、波斯语、葡萄牙语、罗马尼亚语、俄语、索拉尼、西班牙语、瑞典、泰国、土耳其
在我们日常使用Analysis时,通常需要使用到中文分析器,目前官方没有提供有效的中文分析器,这时我们就需要基于其他一些组件进行自我构建中文分析器了,常用的例如gojieba、sego等,后续我们再进行深入研究探讨。
本文声明:
知识共享许可协议
本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。