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;
}
}
,
어떻게 내가 동적으로 정의 en
및 de
들과 함께 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>에서
기존 분석기를 분석기 정의에 어떻게 추가합니까?