2013-06-21 30 views
0

我有一個關於lucene的tokenfilters順序的問題。例如,如果我想擁有以下過濾器,那麼lucene使用這些過濾器的順序是什麼?什麼是lucene的tokenFilters命令?

1- LowerCaseFilter 貓=>貓

2- TrimFilter 貓! =>貓

3-的StopFilter 貓=>貓

4- LengthFilter

5- StemmerFilter

6- SynonymFilter

我無法找到任何文件,解釋該序列。

回答

0

過濾器的訂購取決於您的需求。但是,您的訂購看起來很合理。

應該注意,我不相信TrimFilter會執行您指定的操作。 TrimFilter修飾令牌中的空格,而不是標點符號。大多數Tokenizers不需要這個過濾器。

TrimFilter和LowerCaseFilter通常會提前使用,以便對單詞內容進行操作的過濾器不必處理大小寫或空白。

StopFilter和LengthFilter的操作方式相似,我通常在使用它們之前使用它們。被StopFilter移除的單詞通常是非常原子的,所以在Stemmer之前應用它是有道理的。在stemmer之後應用這些過濾器可能會導致丟失有意義的干擾,但您並不打算這麼做。如果你希望你的StopFilter操作干擾詞,它當然需要在Stemmer之後。

Stemmer之後是否出現SynonymFilter絕對取決於您的需求。繼Stemmer之後的SynonymFilter通常會更有用,但將要求您使用它們的詞幹形式定義同義詞

+0

非常感謝。你幫了很多忙。 –