Hibernate 为什么文档字段在使用小写FilterFactory后仍然使用大写字符?

Hibernate 为什么文档字段在使用小写FilterFactory后仍然使用大写字符?,hibernate,hibernate-search,Hibernate,Hibernate Search,我认为分析器应该同时应用索引和搜索过程,对吗?如果为true,为什么我的文档字段在分析器中使用LowerCaseFilterFactory过滤器后仍然使用大写字符 我使用Luke检查文档字段 这是我的相关代码 @Indexed @AnalyzerDef(name = "remarksAnalyzer", tokenizer = @TokenizerDef(factory = StandardTokenizerFactory.class) , filters = { @TokenF

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

您是否尝试使用小写单词搜索索引?我很肯定它会起作用的

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


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

您是否尝试使用小写单词搜索索引?我很肯定它会起作用的

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


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

是的,它确实有效,使用小写和大写单词进行搜索都会返回正确的结果。感谢您的解释,它解决了我的困惑。我刚刚将索引导出到Luke中的一个文件(单击菜单项“工具”>“将索引导出到XML”),发现导出的文件同时包含分析值和原始值,如下所示:
mnY79bG2snM0Kq4QhCRR
。它应该能证实你的解释。谢谢,纪尧姆。是的,它确实有效,使用小写和大写单词搜索都会返回正确的结果。感谢您的解释,它解决了我的困惑。我刚刚将索引导出到Luke中的一个文件(单击菜单项“工具”>“将索引导出到XML”),发现导出的文件同时包含分析值和原始值,如下所示:
mnY79bG2snM0Kq4QhCRR
。它应该能证实你的解释。谢谢,纪尧姆。