2016-08-24 45 views
0

我有4個文檔分別包含以下4個文本。使用SnowballPorterFilterFactory進行詞幹搜索似乎返回較少結果

  • XXX做XXX
  • XXX確實XXX
  • XXX確實XXX
  • XXX幹XXX

現在我執行由文本搜索 「」 使用SnowballPorterFilterFactory過濾器,並期望搜索出所有上述4個文件。但只搜索出下列文件。

  • XXX做XXX
  • XXX幹XXX

但是當我試圖通過文本搜索 「重構」,包含文本 「重構」,「refactors所有文件「,」重構「或」重構「被搜出。

爲什麼由文本搜索「」不能返回一個包含文件「確實」和「」?單詞「」有點特別,不應該使用SnowballPorterFilterFactory過濾器?

謝謝。

回答

1

我並不感到驚訝:在Lucene的SnowballFilter提供的停用詞列表中,所有形式的do被聲明爲停用詞,因此他們可能不關心這種情況。

所以它或多或少與他們的意圖一致。

您可以: *使用StopFilterFactory和提供的english_stop.txt(閱讀文件頂部的註釋,瞭解要使用的格式);注意只搜索術語do/doing/did是行不通的(但我認爲這不是一個用例本身),但如果它們是更大搜索的一部分,它們將被忽略,從而解決您的問題。 *用SynonymFilterFactory將它們聲明爲同義詞。

無論哪種方式,歡迎來到美妙的詞幹世界:它真的不是一個容易的主題。

+0

感謝您的解釋和解決方案。我會在稍後嘗試。並感謝您的歡迎,^ _ ^。 –