我正在开发一个涉及使用Apache Lucene索引文件的项目。虽然我成功地能够使用Lucene索引文件,但是当我看到结果时,我得到许多突然的单词,可能是因为我没有在索引时删除停用词。
我在网上看到,Lucene提供了一种在索引文件时删除停用词的方法。我怎么能这样做?
答案 0 :(得分:1)
Lucene的StandardAnalyzer包含一个StopFilter,可以从通过它的任何内容中删除一些典型的停用词。英语停用词的标准列表很短;一些文章,代词和介词,主要是。
如果您希望定义自己的StopWords集合,StandardAnalyzer会有一些构造函数允许您传入自己的一组停用词,尤其是this one。只需创建一个包含所需停用词的CharArraySet,然后将其传递给该构造函数即可。
我相信大多数其他典型的分析器都有一个接受相同参数的构造函数(一目了然,看起来analyzers-common中的几乎所有语言分析器都遵循这种模式)
当然,请确保use the same analyzer进行索引和搜索。
答案 1 :(得分:0)
如果您将使用标准分析仪或停止分析仪,那么停止像“on,a,an,the”这样的单词将自动从索引中删除,您无法使用停用词进行搜索。如果你想用停止词进行搜索,比如“是,是,开”,你必须使用空格分析器或简单的分析器。