2016-12-02 2 views
2
@Entity 
@Indexed 
@AnalyzerDefs({ 
    @AnalyzerDef(name = "en", 
    tokenizer = @TokenizerDef(factory = StandardTokenizerFactory.class), 
    filters = { 
     @TokenFilterDef(factory = LowerCaseFilterFactory.class), 
     @TokenFilterDef(factory = EnglishPorterFilterFactory.class 
    ) 
    }), 
    @AnalyzerDef(name = "de", 
    tokenizer = @TokenizerDef(factory = StandardTokenizerFactory.class), 
    filters = { 
     @TokenFilterDef(factory = LowerCaseFilterFactory.class), 
     @TokenFilterDef(factory = GermanStemFilterFactory.class) 
    }) 
}) 
public class BlogEntry { 

    @Id 
    @GeneratedValue 
    @DocumentId 
    private Integer id; 

    @Field 
    @AnalyzerDiscriminator(impl = LanguageDiscriminator.class) 
    private String language; 

    @Field 
    private String text; 

    private Set<BlogEntry> references; 

    // standard getter/setter 
    // ... 
} 

public class LanguageDiscriminator implements Discriminator { 

    public String getAnalyzerDefinitionName(Object value, Object entity, String field) { 
     if (value == null || !(entity instanceof Article)) { 
      return null; 
     } 
     return (String) value; 

    } 
} 

,
어떻게 내가 동적으로 정의 ende들과 함께 org.apache.lucene.analysis.cjk.CJKAnalyzer 같은 기존 분석기를 사용할 수 있습니까? 여기서 분석기의 이름 만 반환 할 수 있으며, CJKAnalyzer을 반환하면 분석기가 정의되지 않습니다.를 사용하여 기존 분석기 <a href="https://docs.jboss.org/hibernate/stable/search/reference/en-US/html_single/#_dynamic_analyzer_selection" rel="nofollow noreferrer">Reference Doc</a>에서

기존 분석기를 분석기 정의에 어떻게 추가합니까?

답변

관련 문제

 관련 문제