使用LowerCaseFilterFactory后,为什么文档字段仍然具有大写字符?

时间:2016-08-24 05:51:47

标签: hibernate hibernate-search

我认为分析器应该同时应用索引和搜索过程,对吗?如果为true,为什么在分析器中使用 LowerCaseFilterFactory 过滤器后,我的文档字段仍然具有大写字符?

我使用Luke检查我的文档字段。

这是我的相关代码。

@Indexed
@AnalyzerDef(name = "remarksAnalyzer", tokenizer = @TokenizerDef(factory = StandardTokenizerFactory.class) , filters = {
        @TokenFilterDef(factory = LowerCaseFilterFactory.class),
        @TokenFilterDef(factory = SnowballPorterFilterFactory.class, params = {
                @Parameter(name = "language", value = "English") }) })
public class Book {
    ...
    @Field(store = Store.YES)
    @Analyzer(definition = "remarksAnalyzer")
    private String remarks;
    ...
}

1 个答案:

答案 0 :(得分:3)

您是否尝试使用小写字词搜索索引?我很确定它会起作用。

事实是,如果您使用store = Store.YES,则会将未分析的字符串存储在索引和分析的标记中。这可能允许您使用突出显示器:例如:要获得突出显示的字符串,您需要原始值。

Luke可能会向您显示存储的值,而不是索引的标记。