0

Gibt es eine Möglichkeit, eine @AnalyzerDef Annotation in einer XML-Datei zu definieren, so dass ich es nur einmal definieren muss? Ich habe mehrere Entitätsklassen, die alle das gleiche AnalyzerDef verwenden sollten. Derzeit sieht meine Annotation folgendermaßen aus:Hibernate Search: AnalyzerDef in XML

@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; 
    } 
} 

Antwort

2

Wir haben keine XML-Konfiguration für die Hibernate-Suche.

Mit diesen Anmerkungen müssen Sie Ihre Analysatordefinitionen nur einmal global definieren. Die einzige Einschränkung, die Sie haben, besteht darin, dass sie für eine Entität definiert werden müssen. Sie können diese Entität jedoch nach dem Zufallsprinzip auswählen und alle Ihre Analysatoren darauf definieren. Sie stehen dann in allen anderen Entitäten zur Verfügung, vorausgesetzt Sie verweisen auf sie Namen (wie Sie in Ihrem Beispiel getan haben).

In $ previousJob definierten wir alle unsere generischen Analysatoren auf einer Entität, die von allen unseren Projekten gemeinsam genutzt wurde: 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 und wir verwendeten sie in den anderen Entitäten: 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.

Verwandte Themen