7.3.6. Analyzer
假设索引图书实体的标题 重构:改进现有代码的设计,并且
以下查询需要点击: 重构、重
构、
重构
和 重构
。在 Lucene 中选择一个分析器类,该类在索引和搜索时应用单词强制。Hibernate Search 提供多种配置分析器的方法(请参阅默认分析器和按类分析器 ),了解更多信息:
-
在配置文件中设置
analyzer
属性。指定类成为默认分析器。 -
在实体级别上设置
@Analyzer
注释。 -
在字段级别上设置
@Analyzer
注释。
指定要使用的完全限定类名称或分析器,或者查看由 @AnalyzerDef
注释定义的分析器,以及 @Analyzer
注释。使用 Solr 分析器框架及其工厂选择后一个选项。有关工厂类的更多信息,请参阅 Solr JavaDoc 或阅读 Solr Wiki 的对应章节。
在示例中,两个过滤器工厂使用 StandardTokenizerFactory:LowerCaseFilterFactory 和 SnowballPorterFilterFactory。令牌者在标点字符和连字符分割单词,但保持电子邮件地址和互联网主机名不变。标准令牌程序是这一操作和其他常规操作的理想选择。小写过滤器将令牌中的所有字母转换为小写,snowball 过滤器则应用特定于语言的逻辑。
如果使用 Solr 框架,请使用带任意数量的过滤器的令牌程序。
示例:使用 @AnalyzerDef 和 Solr Framework 来定义和使用分析器
使用 @AnalyzerDef 定义分析器,然后使用 @Analyzer 将它应用到实体和属性。在该示例中,定义了 customanalyzer
,但不应用于实体。分析器仅适用于 标题
属性。分析器定义是全局的。为实体定义分析器,并根据需要为实体重新利用定义。
和副标题