当前位置: 首页 > 面试题库 >

在休眠搜索AnalyzerDiscriminator中使用现有分析器

沙小白
2023-03-14
问题内容
@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.CJKAnalyzer,沿ende我所动态定义的呢?我只能在此处返回分析器的名称,返回时我CJKAnalyzer未定义分析器。

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


问题答案:

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

答案是不可能的。

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

  • https://hibernate.atlassian.net/browse/HSEARCH-2518


 类似资料:
  • 问题内容: 我想知道如何使用Range-Query在Hibernate Search中按日期进行搜索,还是我必须实现任何过滤器?以下是我在Record Entity中的字段 我的要求是找到两个日期之间分析的记录,例如。2011年11月11日至2012年11月11日。我很困惑如何执行此操作。 问题答案: 您应该使用 从 和 到 的范围查询。 因为您使用 DateTools 自己创建了基于字符串的搜索

  • 问题内容: 我正在使用Elasticsearch构建URL索引。 我将一个URL提取为3个部分,分别是“域”,“路径”和“查询”。 例如:将分为 当我想在索引中部分搜索域时出现问题,例如“ user = who”或“ ing.com”。 甚至在索引时没有使用“ Analyzer”时,是否可以使用“ Analyzer”? 如何基于分析仪进行部分搜索? 非常感谢你。 问题答案: 2种方法: 1.通配符

  • 问题内容: 考虑: 查询将是这样的: 如何实现按孩子计数? 换句话说,返回的TParent列表的顺序将由TChildSet计数决定。 我知道@Formula可以在SQL环境中使用。我不确定Lucene是否可以使用类似的东西? 任何帮助,指点,评论甚至批评都欢迎。 非常感谢约翰 问题答案: 在hibernate搜索中,您可以为此创建一个自定义Bridge。 类似于以下内容: 使用自定义桥实现:

  • 问题内容: 是否可以仅对hibernate-search的注释(bean => document / document => bean mapping)使用hibernate-search,而不使用数据库?如果是这样,是否有任何在线样本基本上显示了如何进行设置? 我发现了以下内容:http : //mojodna.net/2006/10/02/searchable-annotation-drive

  • 问题内容: 我有这样的JPA实体类: 我需要这样的搜索方法 用法示例: 我对findAll方法的想法是 但这太丑陋了,看起来有些开销。谁能帮助我更礼貌地邀请该方法?我可以使用任何Java技术或框架。 问题答案: 所以您要寻找 原型 吗?Hibernate为此提供了一个方便的标准,因此,如果您不介意将自己与Hibernate API捆绑在一起,请尝试以下来自docs的示例: 它具体说: 版本属性,标

  • 问题内容: 我正在浏览hibernate文档,并遇到了逆属性的概念。我是Hibernate的新手,所以我很难正确理解该概念。 http://docs.jboss.org/hibernate/orm/3.3/reference/zh- CN/html/collections.html#collections- bidirectional 从上面的代码中,应用于类别,因此我知道类别是相反的一端。 但是