知识分享之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 国际许可协议 进行许可。

目录
相关文章
|
JSON 算法 Go
Golang语言使用 jwt-go 库生成和解析 token
Golang语言使用 jwt-go 库生成和解析 token
499 0
|
2月前
|
中间件 Go 数据处理
应用golang的管道-过滤器架构风格
【10月更文挑战第1天】本文介绍了一种面向数据流的软件架构设计模式——管道-过滤器(Pipe and Filter),并通过Go语言的Gin框架实现了一个Web应用示例。该模式通过将数据处理流程分解为一系列独立的组件(过滤器),并利用管道连接这些组件,实现了模块化、可扩展性和高效的分布式处理。文中详细讲解了Gin框架的基本使用、中间件的应用以及性能优化方法,展示了如何构建高性能的Web服务。
85 0
|
存储 自然语言处理 Java
知识分享之Golang——Bleve专用术语
知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。 知识分享系列目前包含Java、Golang、Linux、Docker等等。
141 0
知识分享之Golang——Bleve专用术语
|
自然语言处理 Java Linux
知识分享之Golang——Bleve中的字符过滤器和分词规则
知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。 知识分享系列目前包含Java、Golang、Linux、Docker等等。
217 0
知识分享之Golang——Bleve中的字符过滤器和分词规则
|
Java Linux Go
知识分享之Golang——Bleve中的Text Analysis简单了解
知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。 知识分享系列目前包含Java、Golang、Linux、Docker等等。
258 0
知识分享之Golang——Bleve中的Text Analysis简单了解
|
Java Linux Go
知识分享之Golang——Bleve中提供的各类搜索方法(一)
知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。 知识分享系列目前包含Java、Golang、Linux、Docker等等。
256 0
知识分享之Golang——Bleve中提供的各类搜索方法(一)
|
存储 Java Linux
知识分享之Golang——Bleve中如何定义一个自定义文档映射对象
知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。 知识分享系列目前包含Java、Golang、Linux、Docker等等。
120 0
知识分享之Golang——Bleve中如何定义一个自定义文档映射对象
|
3月前
|
Go
Golang语言之管道channel快速入门篇
这篇文章是关于Go语言中管道(channel)的快速入门教程,涵盖了管道的基本使用、有缓冲和无缓冲管道的区别、管道的关闭、遍历、协程和管道的协同工作、单向通道的使用以及select多路复用的详细案例和解释。
140 4
Golang语言之管道channel快速入门篇
|
3月前
|
Go
Golang语言文件操作快速入门篇
这篇文章是关于Go语言文件操作快速入门的教程,涵盖了文件的读取、写入、复制操作以及使用标准库中的ioutil、bufio、os等包进行文件操作的详细案例。
71 4
Golang语言文件操作快速入门篇
|
3月前
|
Go
Golang语言之gRPC程序设计示例
这篇文章是关于Golang语言使用gRPC进行程序设计的详细教程,涵盖了RPC协议的介绍、gRPC环境的搭建、Protocol Buffers的使用、gRPC服务的编写和通信示例。
112 3
Golang语言之gRPC程序设计示例