7.4.3.5. 检索分析器
当在域模型中使用了多个分析器时,可以检索分析器,以便从医疗或手机近似中受益。在这种情况下,使用相同的分析器来构建查询。或者,使用 Hibernate Search 查询 DSL,它会自动选择正确的分析器。请查看
无论您是使用 Lucene 编程 API,还是 Lucene 查询解析器,您都可以检索给定实体的范围分析器。有作用域分析器是一个分析器,它根据字段索引来应用正确的分析器。请记住,可以在给定实体上定义多个分析器,每个实体都在单个字段上工作。一个作用域分析器可将所有这些分析器统一到上下文感知分析器中。尽管该理论似乎比较复杂,但在查询中使用正确的分析器非常简单。
当您对子实体使用编程映射时,只能查看子实体定义的字段。从父实体继承的字段或方法(使用 @MappedSuperclass 标注)不可配置。要配置从父实体继承的属性,可覆盖子实体中的 属性,或者为父实体创建编程映射。这模拟了注解的使用,除非子实体中重新定义了父实体的字段或方法。
示例:构建全文本查询时使用 Scoped Analyzer
在上例中,歌曲标题按照两个字段索引:标准分析器在字段 标题中
使用,greject _stemmed 字段中则使用一个适当的
分析器。通过使用搜索工厂提供的分析器,查询会根据目标字段使用适当的分析器。
您还可以使用 searchFactory.getAnalyzer(String)根据定义名称检索 @Analyzer
Def 定义的分析器。