java将原始输入字符串保留为CustomAnalyzer中的标记/术语
我正在使用ApacheLucene 6.3.0,我正在尝试为我的索引实现一个自定义分析器,它允许搜索文件名。问题是,我想允许用户也使用确切的文件名进行搜索,但Analyzer只有单独的标记,而不是作为标记之一的原始文件名
Analyzer analyzer = CustomAnalyzer.builder()
.withTokenizer(StandardTokenizerFactory.class)
.addTokenFilter(LowerCaseFilterFactory.class)
.addTokenFilter(WordDelimiterFilterFactory.class)
.build();
输入:-power_shot_black_neo。txt
预期输出:-
强力射击,黑色射击。txt
功率
镜头
黑色
尼奥
txt
实际输出:-
功率
镜头
黑色
尼奥
txt
# 1 楼答案
因为您使用的是标准标记器,所以它会按照指示标记字符串。您可以使用关键字标记器和WordDelimiterFilter,因为WordDelimiterFilter也应该能够保留原始标记
另一个选项是为精确值设置不同的字段,以便您也可以对字段进行不同的评分/加权