Hibernate 搜索:XML 中的 AnalyzerDef

安德烈

有没有办法在 xml 文件中定义 @AnalyzerDef 注释,这样我只需定义一次?我有多个实体类,它们都应该使用相同的 AnalyzerDef。目前我的注释是这样的:

@Entity
@Cacheable
@Indexed
@AnalyzerDef(name = "ngram",
    tokenizer = @TokenizerDef(factory = StandardTokenizerFactory.class),
    filters = {
        @TokenFilterDef(factory = StandardFilterFactory.class),
        @TokenFilterDef(factory = LowerCaseFilterFactory.class),
        @TokenFilterDef(factory = NGramFilterFactory.class,
            params = {
                @Parameter(name = "minGramSize", value = "3"),
                @Parameter(name = "maxGramSize", value = "40")})
})
public class MobileDevice extends CommunicationDevicePlace implements Comparable<MobileDevice> {

    private String name;

    @Field(index = org.hibernate.search.annotations.Index.YES, analyze = Analyze.YES, store = Store.NO, analyzer = @Analyzer(definition = "ngram"))
    public String getName() {
        return name;
    }
}
纪尧姆·斯梅特

我们没有用于 Hibernate Search 的 XML 配置。

话虽如此,使用注释,您只需全局定义一次分析器定义。

您唯一的限制是它们需要在实体上定义,但您可以随机选择该实体并在其上定义所有分析器,并且它们将在您的所有其他实体中可用,前提是您使用它们的名称引用它们(就像您一样)在你的例子中做了)。

在$ previousJob中,我们在所有项目共享的实体上定义了所有通用分析器:https : //github.com/openwide-java/owsi-core-parent/blob/master/owsi-core/owsi-core-components /owsi-core-component-jpa-more/src/main/java/fr/openwide/core/jpa/more/business/parameter/model/Parameter.java,我们在其他实体中使用它们:https://github .com/openwide-java/owsi-core-parent/blob/master/owsi-core/owsi-core-components/owsi-core-component-jpa-more/src/main/java/fr/openwide/core/jpa /more/business/task/model/QueuedTaskHolder.java#L50

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章