Documentation
¶
Index ¶
- func NewGseSearchAnalyzer() *analysis.Analyzer
- func NewGseSearchTokenizer() analysis.Tokenizer
- func NewGseStandardAnalyzer() *analysis.Analyzer
- func NewGseStandardTokenizer() analysis.Tokenizer
- func NewGseStopTokenFilter() analysis.TokenFilter
- func ReleaseToken(t *Token)
- type AnalysisConfig
- type Backend
- type CNGramProcessor
- type CorrectProcessor
- type Engine
- type EngineConfig
- type ForceNoSplitProcessor
- type ForceSplitProcessor
- type GseBackend
- type JiebaBackend
- type LowerCaseProcessor
- type PinyinConfig
- type PinyinProcessor
- type Processor
- type STConvertProcessor
- type StopProcessor
- type SynonymConfig
- type SynonymMode
- type SynonymProcessor
- type Token
- type TokenStream
- type UniqueProcessor
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewGseSearchAnalyzer ¶
NewGseSearchAnalyzer 返回一个使用 gse 后端 + stop 过滤的搜索 analyzer 兼容旧的 gse_search analyzer 注册
func NewGseSearchTokenizer ¶
NewGseSearchTokenizer 返回 gse 搜索 tokenizer(兼容旧注册)
func NewGseStandardAnalyzer ¶
NewGseStandardAnalyzer 返回一个使用 gse 后端 + stop 过滤的 analyzer 兼容旧的 gse_standard analyzer 注册
func NewGseStandardTokenizer ¶
NewGseStandardTokenizer 返回 gse 标准 tokenizer(兼容旧注册)
func NewGseStopTokenFilter ¶
func NewGseStopTokenFilter() analysis.TokenFilter
NewGseStopTokenFilter 返回停用词 filter(兼容旧注册)
Types ¶
type AnalysisConfig ¶
type AnalysisConfig struct {
Backend string // gse | jieba
Concurrency int // 分词并发数
// 词典路径
DictPath string // 主词典
UserDictPath string // 用户词典
SynonymPath string // 同义词词典
StopPath string // 停用词词典
PinyinPath string // 拼音词典
PosKeepPath string // 词性保留
ForceSplitPath string // 强制分词
ForceNoSplitPath string // 禁止分词
CorrectPath string // 纠错词典
WeightPath string // 权重词典
DomainDicts []string // 领域词库列表
// Pipeline 配置
PinyinFull bool
PinyinFirstLetter bool
PinyinKeepOriginal bool
SynonymMode string // bidirectional | unidirectional
NgramMin int
NgramMax int
STConvertDir string // s2t | t2s
// 停用词
StopEnable bool
StopPosFilter bool
StopMinTokenLen int
// 性能
CacheSize int
CacheTTLSec int
MaxInputLen int
// 调试
Debug bool
SlowThresholdMs int
Explain bool
// 热加载
DictWatch bool
DictWatchDebounceMs int
}
AnalysisConfig 分词引擎配置
type Backend ¶
type Backend interface {
// Name 返回后端名称,如 "gse"、"jieba"
Name() string
// Cut 分词,isSearch=true 时启用搜索模式(子词扩展)
Cut(text []byte, isSearch bool) []Token
}
Backend 分词后端接口 所有后端必须实现此接口
type CNGramProcessor ¶
CNGramProcessor N-gram 补偿:对中文字词做 2-3 gram 扩展
func NewCNGramProcessor ¶
func NewCNGramProcessor() *CNGramProcessor
func (*CNGramProcessor) Name ¶
func (p *CNGramProcessor) Name() string
func (*CNGramProcessor) Process ¶
func (p *CNGramProcessor) Process(tokens []Token) []Token
type CorrectProcessor ¶
type CorrectProcessor struct {
// contains filtered or unexported fields
}
CorrectProcessor 纠错词典:将错误写法映射为正确写法
func NewCorrectProcessor ¶
func NewCorrectProcessor(path string) *CorrectProcessor
func (*CorrectProcessor) Name ¶
func (p *CorrectProcessor) Name() string
func (*CorrectProcessor) Process ¶
func (p *CorrectProcessor) Process(tokens []Token) []Token
type Engine ¶
type Engine struct {
// contains filtered or unexported fields
}
Engine 分词引擎,管理 Backend + Pipeline 链
func (*Engine) IndexAnalyzer ¶
IndexAnalyzer 返回一个可用于 bluge 索引的 analyzer 根据字段的 mapping 配置选择索引分词器
func (*Engine) IndexTokens ¶
IndexTokens 索引分词:标准模式 + pipeline
func (*Engine) SearchTokens ¶
SearchTokens 搜索分词:搜索模式 + pipeline
type EngineConfig ¶
type EngineConfig struct {
Backend Backend
IndexPipeline []Processor
SearchPipeline []Processor
Config AnalysisConfig
}
EngineConfig Engine 配置
type ForceNoSplitProcessor ¶
type ForceNoSplitProcessor struct {
// contains filtered or unexported fields
}
ForceNoSplitProcessor 禁止分词:保持某些词不分词
func NewForceNoSplitProcessor ¶
func NewForceNoSplitProcessor(path string) *ForceNoSplitProcessor
func (*ForceNoSplitProcessor) Name ¶
func (p *ForceNoSplitProcessor) Name() string
func (*ForceNoSplitProcessor) Process ¶
func (p *ForceNoSplitProcessor) Process(tokens []Token) []Token
type ForceSplitProcessor ¶
type ForceSplitProcessor struct {
// contains filtered or unexported fields
}
ForceSplitProcessor 强制分词:将某些词按指定方式切分
func NewForceSplitProcessor ¶
func NewForceSplitProcessor(path string) *ForceSplitProcessor
func (*ForceSplitProcessor) Name ¶
func (p *ForceSplitProcessor) Name() string
func (*ForceSplitProcessor) Process ¶
func (p *ForceSplitProcessor) Process(tokens []Token) []Token
type GseBackend ¶
type GseBackend struct {
// contains filtered or unexported fields
}
GseBackend 基于 go-ego/gse 的分词后端(纯 Go,无 CGo)
func (*GseBackend) Name ¶
func (b *GseBackend) Name() string
type JiebaBackend ¶
type JiebaBackend struct {
// contains filtered or unexported fields
}
JiebaBackend 基于 fumiama/jieba 的分词后端(纯 Go,完整 jieba 词典)
func NewJiebaBackend ¶
func NewJiebaBackend(dictPath string) *JiebaBackend
NewJiebaBackend 创建 jieba 后端 dictPath: 词典文件路径,空字符串使用内嵌词典
func (*JiebaBackend) Cut ¶
func (b *JiebaBackend) Cut(text []byte, isSearch bool) []Token
Cut 对输入进行分词 isSearch=true 时使用搜索引擎模式(拆分长词提高召回)
func (*JiebaBackend) Name ¶
func (b *JiebaBackend) Name() string
type LowerCaseProcessor ¶
type LowerCaseProcessor struct{}
LowerCaseProcessor 统一转小写
func (*LowerCaseProcessor) Name ¶
func (p *LowerCaseProcessor) Name() string
func (*LowerCaseProcessor) Process ¶
func (p *LowerCaseProcessor) Process(tokens []Token) []Token
type PinyinConfig ¶
type PinyinConfig struct {
Full bool // 全拼,如 "中国"→"zhongguo"
FirstLetter bool // 首字母,如 "中国"→"zg"
KeepOriginal bool // 是否保留原词
}
PinyinConfig 拼音扩展配置
type PinyinProcessor ¶
type PinyinProcessor struct {
// contains filtered or unexported fields
}
PinyinProcessor 拼音扩展
func NewPinyinProcessor ¶
func NewPinyinProcessor(cfg PinyinConfig) *PinyinProcessor
func (*PinyinProcessor) Name ¶
func (p *PinyinProcessor) Name() string
func (*PinyinProcessor) Process ¶
func (p *PinyinProcessor) Process(tokens []Token) []Token
type STConvertProcessor ¶
type STConvertProcessor struct {
// contains filtered or unexported fields
}
STConvertProcessor 繁简转换
func NewSTConvertProcessor ¶
func NewSTConvertProcessor() *STConvertProcessor
func (*STConvertProcessor) Name ¶
func (p *STConvertProcessor) Name() string
func (*STConvertProcessor) Process ¶
func (p *STConvertProcessor) Process(tokens []Token) []Token
type StopProcessor ¶
type StopProcessor struct {
// contains filtered or unexported fields
}
StopProcessor 停用词过滤:去除无意义的高频词
func NewStopProcessor ¶
func NewStopProcessor(stopWords map[string]bool) *StopProcessor
func (*StopProcessor) Name ¶
func (p *StopProcessor) Name() string
func (*StopProcessor) Process ¶
func (p *StopProcessor) Process(tokens []Token) []Token
type SynonymConfig ¶
type SynonymConfig struct {
Mode SynonymMode // 模式
Path string // 同义词文件路径
CaseSensitive bool // 大小写敏感
}
SynonymConfig 同义词配置
type SynonymMode ¶
type SynonymMode string
SynonymMode 同义词模式
const ( SynonymBidirectional SynonymMode = "bidirectional" // 双向等价 SynonymUnidirectional SynonymMode = "unidirectional" // 单向映射 )
type SynonymProcessor ¶
type SynonymProcessor struct {
// contains filtered or unexported fields
}
SynonymProcessor 同义词扩展
func NewSynonymProcessor ¶
func NewSynonymProcessor(cfg SynonymConfig) *SynonymProcessor
NewSynonymProcessor 创建同义词 processor
func (*SynonymProcessor) Name ¶
func (p *SynonymProcessor) Name() string
func (*SynonymProcessor) Process ¶
func (p *SynonymProcessor) Process(tokens []Token) []Token
type UniqueProcessor ¶
type UniqueProcessor struct{}
UniqueProcessor 去重:去除 pipeline 中重复的 token
func (*UniqueProcessor) Name ¶
func (p *UniqueProcessor) Name() string
func (*UniqueProcessor) Process ¶
func (p *UniqueProcessor) Process(tokens []Token) []Token