0

I have a question about the lucene's tokenfilters order. For example if I want to have following filters, what is lucene's order of using these filters?

1- LowerCaseFilter Cats => cats

2- TrimFilter Cats! => Cats

3- StopFilter a cat => cat

4- LengthFilter

5- StemmerFilter

6- SynonymFilter

I could not find any document explaining this sequence.

4

1 回答 1

0

过滤器的订购取决于您的需要。但是,您的订购似乎是合理的。

应该注意,我不相信TrimFilter你指定的。 TrimFilter从标记中修剪空格,而不是标点符号。大多数 Tokenizers 使这个过滤器变得不必要。

TrimFilter 和 LowerCaseFilter 通常会在早期使用,因此对单词内容进行操作的过滤器不必处理大小写或空格。

StopFilter 和 LengthFilter 的操作类似,我通常会在词干提取之前使用它们。StopFilter 删除的单词通常是非常原子的,因此在 Stemmer 之前应用它是有意义的。在词干分析器之后应用这些过滤器可能会导致丢失您不希望的有意义的词干。如果您确实希望您的 StopFilter 对词干进行操作,那么它当然需要在 Stemmer 之后。

SynonymFilter 是否出现在 Stemmer 之后肯定取决于您的需求。词干后的同义词过滤器通常会更有用,但需要您使用词干形式定义同义词

于 2013-06-21T17:49:07.460 回答