开发 Elasticsearch 自定义分析插件
1. 开发背景
在开发 Elasticsearch 自定义插件时,分析过程扩展是一个重要且有时非常有用的部分。例如,当你想引入公司内部使用的自定义分析流程,或者使用 Elasticsearch 本身没有的 Lucene 分析器或过滤器时,就需要开发自定义分析插件。不过,与开发自定义 REST 动作相比,创建分析扩展更为复杂。
2. 开发所需组件
开发自定义分析插件需要实现以下几个关键组件:
-CustomFilter:继承org.apache.lucene.analysis.TokenFilter类,负责处理令牌反转。
-CustomFilterFactory:继承org.elasticsearch.index.analysis.AbstractTokenFilterFactory类,为 Elasticsearch 提供CustomFilter实例。
-CustomAnalyzer:继承org.apache.lucene.analysis.Analyzer类,提供 Lucene 分析器功能。
-CustomAnalyzerProvider:继承org.elasticsearch.index.analysis.AbstractIndexAnalyzerProvider