我正在关注此链接上的文档,我想将分析器定义移动到一个单独的类中。
这是我想移动的代码块,以免将其绑定到特定实体。
@Entity @Indexed @AnalyzerDef(name = "customanalyzer", tokenizer = @TokenizerDef(factory = StandardTokenizerFactory.class), filters = { @TokenFilterDef(factory = LowerCaseFilterFactory.class), @TokenFilterDef(factory = SnowballPorterFilterFactory.class, params = { @Parameter(name = "language", value = "English") }) }) public class Book { @Field @Analyzer(definition = "customanalyzer") private String title; ....
基本上我想将所有这些定义到一个单独的类中,并且只添加@Analyzer(definition = "customanalyzer")
到我的实体类中。
有任何想法吗?非常感谢
现在你唯一的选择是将定义移动到一个package-info.java
文件并用以下内容填充它:
@AnalyzerDef(name = "customanalyzer",
tokenizer = @TokenizerDef(factory = StandardTokenizerFactory.class),
filters = {
@TokenFilterDef(factory = LowerCaseFilterFactory.class),
@TokenFilterDef(factory = SnowballPorterFilterFactory.class, params = {
@Parameter(name = "language", value = "English")
})
})
package org.whatever.my.package.is;
请注意,此包中必须至少有一个带注释的实体,否则 Hibernate Search 将忽略它。
Hibernate Search 5.8 将提供一个实验性的、专用的编程 API,允许以全局方式定义分析器,但此功能尚未发布(甚至在最新的 5.8.Beta2 中也未发布)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句