知识分享之Golang——Bleve中的Token filters各种标记过滤器

简介: 知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。知识分享系列目前包含Java、Golang、Linux、Docker等等。

知识分享之Golang——Bleve中的Token filters各种标记过滤器

背景

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

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

开发环境

内容

本节我们进行了解一下Bleve中的Token filters到底是能带来什么。Token filters这些标记过滤器都是对于我们分词后的标记进行进一步的分词,从而达到我们最终索引词更符合于我们日常的使用,下面开始跟着官方文档进行进一步了解。

Token filters,分析器按照名称引用标记过滤器。使用内置现有的或者自定义的均可以,可直接使用IndexMapping.AddCustomTokenFilter创建一个定制的过滤器,官方示例如下:

var m *IndexMapping = index.Mapping()
// 创建一个名为color_stop_filter的停止标记过滤器(stop_tokens_filter.Name),该过滤器中过滤red、green、blue这些标记,这时我们就可以在自定义分析器(custom Analyzer)中引用它。
err := m.AddCustomTokenFilter("color_stop_filter", map[string]interface{}{
    "type": stop_tokens_filter.Name,
    "tokens": []interface{}{
        "red",
        "green",
        "blue",
    },
})
if err != nil {
    log.Fatal(err)
}

Apostrophe 撇号过滤器 ,它使用的名字是type: apostrophe_filter.Name,撇号过滤器会删除撇号后的所有字符。

Camel Case 驼峰式大小写过滤器,它将一个以驼峰命名的标记拆分为包含它的标记集合。例如camelCase标记将会被拆分为camel和Case。

CLD2,CLD2 标记过滤器将从每个标记中获取文本并将其传递给Compact Language Detection 2库。每个标记都被替换为与检测到的 ISO 639 语言代码相对应的新标记。输入文本应该已经转换为小写。

Compound Word Dictionary 复合词词典过滤器,复合词词典过滤器可让您提供组合成复合词的单词词典,并允许您单独为它们编制索引。

Edge n-gram 标记过滤器,它能将像n-gram一样的标记进行过滤出来,但是通常所有计算后的标记都以一侧为根(前面或者后面)。

Elision 省略过滤器,它可以识别并删除以术语为前缀并以撇号分割的文章。例如l'avion将会变成avion。省略过滤器配置了对包含文章的标记映射引用。

Keyword Marker关键词标记过滤器,它将识别关键词并将他们标记成关键词,然后再任何下面执行的分析器都会忽略这些关键词。关键词标记过滤器配置中有包含关键词的标记映射。

Length 长度过滤器

本文声明:

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

目录
相关文章
|
9月前
|
JSON 算法 Go
Golang语言使用 jwt-go 库生成和解析 token
Golang语言使用 jwt-go 库生成和解析 token
292 0
|
存储 Java Linux
知识分享之Golang——Bleve官方案例解析
知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。 知识分享系列目前包含Java、Golang、Linux、Docker等等。
205 0
知识分享之Golang——Bleve官方案例解析
|
存储 自然语言处理 Java
知识分享之Golang——Bleve专用术语
知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。 知识分享系列目前包含Java、Golang、Linux、Docker等等。
115 0
知识分享之Golang——Bleve专用术语
|
存储 Java Linux
知识分享之Golang——Bleve的NewIndexMapping解析
知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。 知识分享系列目前包含Java、Golang、Linux、Docker等等。
146 0
知识分享之Golang——Bleve的NewIndexMapping解析
|
自然语言处理 Java Linux
知识分享之Golang——Bleve中的字符过滤器和分词规则
知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。 知识分享系列目前包含Java、Golang、Linux、Docker等等。
187 0
知识分享之Golang——Bleve中的字符过滤器和分词规则
|
Java Linux Go
知识分享之Golang——Bleve中的Text Analysis简单了解
知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。 知识分享系列目前包含Java、Golang、Linux、Docker等等。
203 0
知识分享之Golang——Bleve中的Text Analysis简单了解
|
Java Linux Go
知识分享之Golang——Bleve中提供的各类搜索方法(一)
知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。 知识分享系列目前包含Java、Golang、Linux、Docker等等。
200 0
知识分享之Golang——Bleve中提供的各类搜索方法(一)
|
存储 Java Linux
知识分享之Golang——Bleve中如何定义一个自定义文档映射对象
知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。 知识分享系列目前包含Java、Golang、Linux、Docker等等。
94 0
知识分享之Golang——Bleve中如何定义一个自定义文档映射对象
|
5天前
|
JSON 测试技术 Go
零值在go语言和初始化数据
【7月更文挑战第10天】本文介绍在Go语言中如何初始化数据,未初始化的变量会有对应的零值:bool为`false`,int为`0`,byte和string为空,pointer、function、interface及channel为`nil`,slice和map也为`nil`。。本文档作为指南,帮助理解Go的数据结构和正确使用它们。
53 22
零值在go语言和初始化数据
|
7天前
|
安全 算法 程序员
在go语言中使用泛型和反射
【7月更文挑战第8天】本文介绍go支持泛型后,提升了代码复用,如操作切片、映射、通道的函数,以及自定义数据结构。 泛型适用于通用数据结构和函数,减少接口使用和类型断言。
69 1
在go语言中使用泛型和反射