2008-11-28 44 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詞幹。例如,「政策」和「警察」這兩個詞在英語「雪球」詞幹分析器中具有相同的詞根,當搜索詞「警察」不是那麼熱時,會在「策略」文檔中獲得匹配結果。我已經實施了支持阻止和非阻塞搜索的策略,以避免這種情況發生,但瞭解其影響非常重要。

小心像停止詞的誘惑。如果您需要搜索短語「成爲或不是」並且標準停用詞已啓用,則您的搜索將無法找到具有該短語的文檔。