知识分享之Golang——Bleve中的Token filters各种标记过滤器
背景
知识分享之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中的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 长度过滤器
本文声明:
知识共享许可协议
本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。