2008-11-28 24 views
2

Lucene.Net新增功能哪个是Lucene.Net中最好的分析器? 另外,我想知道如何使用停用词和词干功能?Lucene.Net功能

回答

1

我也是Lucene.Net的新手,但我确实知道简单分析器省略了任何停用词,并索引了所有的标记/作品。

下面是一些Lucene信息的链接,顺便说一下,.NET版本是对Java版本几乎完美的逐字节重写,所以Java文档在大多数情况下应该可以正常工作:http://darksleep.com/lucene/。这里有一个关于三个分析仪的部分,简单的,停止的和标准的。

我不确定Lucene.Net如何处理词干扰,但此链接http://www.onjava.com/pub/a/onjava/2003/01/15/lucene.html?page=2演示了如何使用Java创建自己的分析器,并使用PorterStemFilter来执行词干分析。

... [T]他波特词干算法(或“波特词干”)是由英文字

去除较为常见的形态和抑扬的结局的过程,我希望是有帮助。

0

我发现的最好的分析仪是StandardAnalyzer,您也可以在其中指定停用词。 例如: -

 string indexFileLocation = @"C:\Index"; 
     string stopWordsLocation = @"C:\Stopwords.txt"; 
     var directory = FSDirectory.Open(new DirectoryInfo(indexFileLocation)); 
     Analyzer analyzer = new StandardAnalyzer(
      Lucene.Net.Util.Version.LUCENE_29, new FileInfo(stopWordsLocation)); 
0

这取决于您的要求。如果您的要求非常简单 - 例如不区分大小写,非词干搜索 - 那么StandardAnalyzer是一个不错的选择。如果您查看分析仪类并熟悉过滤器,特别是TokenFilter,您可以通过滚动您自己的分析器在您的索引上找到exert an enormous amount of control

干扰素很棘手,深入了解您真正需要的干扰素类型非常重要。我已经使用了Snowball词干。例如,“政策”和“警察”这两个词在英语“雪球”词干分析器中具有相同的词根,当搜索词“警察”不是那么热时,会在“策略”文档中获得匹配结果。我已经实施了支持阻止和非阻塞搜索的策略,以避免这种情况发生,但了解其影响非常重要。

小心像停止词的诱惑。如果您需要搜索短语“成为或不是”并且标准停用词已启用,则您的搜索将无法找到具有该短语的文档。