有人可以给我一个关于如何使用Apache Lucene 5.3.1仅索引最小长度的单词的提示吗?
我已经通过API进行了搜索,但除了this之外没有找到任何符合我需求的内容,但我无法弄清楚如何使用它。
谢谢!
编辑: 我想这是重要的信息,所以这里是我对以下答案中我想要实现的解释的副本:
"我不打算使用查询。我想创建一个源代码汇总工具,我使用Lucene为其创建了一个doc-term矩阵。现在它还显示单字或双字的单词。我想排除它们,因此它们不会显示在结果中,因为它们对摘要几乎没有价值。我知道我可以在输出结果时过滤它们,但这不是一个干净的解决方案。更糟糕的是将单字符或双字符单词的所有组合添加到停止列表中。我希望有一种比这更好的方式。"
答案 0 :(得分:2)
您应该使用具有LengthTokeFilter的自定义分析器。 E.g。
Analyzer ana = CustomAnalyzer.builder()
.withTokenizer("standard")
.addTokenFilter("standard")
.addTokenFilter("lowercase")
.addTokenFilter("length", "min", "4", "max", "50")
.addTokenFilter("stop", "ignoreCase", "false", "words", "stopwords.txt", "format", "wordset")
.build();
但最好使用一个禁用词(几乎所有文档中都会出现的词,比如英语文章)。这样可以得到更准确的结果。