在休眠搜索中使用现有分析器AnalyzerDiscriminator [英] Use existing analyzer in hibernate search AnalyzerDiscriminator

查看:64
本文介绍了在休眠搜索中使用现有分析器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;

    }
}

参考文档中,
如何使用动态定义的现有分析器(如org.apache.lucene.analysis.cjk.CJKAnalyzerende)?我只能在这里返回分析器的名称,当我返回CJKAnalyzer时,我将得到未定义的分析器.

From Reference Doc,
How can I use an existing analyzer like org.apache.lucene.analysis.cjk.CJKAnalyzer along with en and de ones which I have dynamically defined? I can only return name of the analyzer here and when I return CJKAnalyzer I get not defined analyzer.

如何将现有分析仪添加到分析仪定义中?

How can I add an existing analyzer to my analyzer definitions?

推荐答案

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

That's an excellent question, and I'm surprised noone asked that before.

答案是不可能的.

我已经在项目中打开了功能请求以对此进行改进:

I have opened a feature request on the project to improve on this:

这篇关于在休眠搜索中使用现有分析器AnalyzerDiscriminator的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆