在hibernate中使用已有的analyzer搜索AnalyzerDiscriminator

Use existing analyzer in hibernate search AnalyzerDiscriminator

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

    }
}

来自 Reference Doc,
我如何使用 org.apache.lucene.analysis.cjk.CJKAnalyzer 之类的现有分析器以及我动态定义的 ende 分析器?我只能在这里 return 分析器的名称,当我 return CJKAnalyzer 我得到未定义的分析器。

如何将现有的分析器添加到我的分析器定义中?

这是一个很好的问题,我很惊讶之前没有人问过这个问题。

答案是不可能。

我已针对该项目提出功能请求以对此进行改进: