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

Why Document Fields Still Have Uppercase Characters after Using LowerCaseFilterFactory?

我认为分析器应该同时应用索引和搜索过程,对吗?如果为真,为什么在分析器中使用 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;
    ...
}

您是否尝试使用小写单词在索引中进行搜索?我很确定它会起作用。

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

Luke 可能会向您显示存储的值而不是索引的令牌。