zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

知识分享之Golang——Bleve中的Text Analysis简单了解

2023-03-15 23:28:27 时间

知识分享之Golang——Bleve中的Text Analysis简单了解

背景

知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。

知识分享系列目前包含Java、Golang、Linux、Docker等等。

开发环境

内容

本节我们进行了解一下Bleve中的Text Analysis文本分析器,文本分析器是将我们输入的文本转换为一系列已分析术语的过程,说白了就是分词器,Analysis是在索引时完成的,将输入文档(文本)转换为索引词。Analysis也在查询时进行生效,用以将查询时输入的文本转换为我们将要搜索的索引词形式,这样更利于索引的匹配。

Analysis(分析器、分词器)用于将输入文本转换为用于索引的标记流。在Bleve中Analysis是由多个模块组件构成的。

  • Character Filters 字符过滤器,其主要是从输入中取出不需要的字符,例如取出空格、隐形字符等等。
  • Tokenizers 断词,分割输入串到token令牌流。我们在使用时通常会将一些关键词创建一个标记,要想让这些标记生效,这里我们就需要用到它了。
  • Token Filters 令牌过滤器,一系列令牌过滤器链接在一起,用来对令牌流执行额外的处理。

目前官方支持的语言有 丹麦语、荷兰语、英语、芬兰、法语、匈牙利、意大利语、德语、挪威、波斯语、葡萄牙语、罗马尼亚语、俄语、索拉尼、西班牙语、瑞典、泰国、土耳其

在我们日常使用Analysis时,通常需要使用到中文分析器,目前官方没有提供有效的中文分析器,这时我们就需要基于其他一些组件进行自我构建中文分析器了,常用的例如gojieba、sego等,后续我们再进行深入研究探讨。

本文声明:

本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。