我认为分析器应该同时应用索引和搜索过程,对吗?如果为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;
...
}
答案 0 :(得分:3)
您是否尝试使用小写字词搜索索引?我很确定它会起作用。
事实是,如果您使用store = Store.YES,则会将未分析的字符串存储在索引和分析的标记中。这可能允许您使用突出显示器:例如:要获得突出显示的字符串,您需要原始值。
Luke可能会向您显示存储的值,而不是索引的标记。