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搜索的XML配置。

话虽如此,有了注释,您需要在全球范围内定义一次分析仪的定义。

您唯一的约束是需要在实体上定义它们,但是您可以随机选择此实体并在其上定义所有分析仪,并且它们将在您的所有其他实体中可用,只要您使用其名称引用它们(就像您在示例中所做的那样)。

在$上job中,我们在所有项目共享的实体上定义了所有通用分析仪:https://github.com/openwide-java/owsi-core-core-core-parent/barent/blob/blob/master/master/master/owsi-core/owsi--core/owsi--Core-Components/OWSI-CORE-CORPONEND-JPA-MORE/SRC/MAIN/JAVA/JAVA/FR/OPENWIDE/CORE/JPA/MORE/MOUSTIRE/business/parameter/parameter/parameter.java,我们在其他实体中使用了它们:https:https:https:https:https://github.com/openwide-java/owsi-core-parent/blob/master/owsi-core/owsi-core/owsi-core-components/owsi-core-core-core-component-component-component-compont--jpa-more/src/src/main/java/java/java/java/fr/openwide/-core/jpa/more/business/task/model/queuedtaskholder.java#l50。

相关内容

  • 没有找到相关文章

最新更新