0

xml 파일에 @AnalyzerDef 주석을 정의하는 방법이 있습니까? 한 번만 정의해야합니다. 동일한 AnalyzerDef를 ​​모두 사용해야하는 여러 엔티티 클래스가 있습니다. 현재 내 주석은 다음과 같습니다.최대 절전 모드 검색 : XML의 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; 
    } 
} 

답변

2

최대 절전 모드 검색에는 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/task/model/QueuedTaskHolder.java#L50에 사용했습니다.