我有一个关于lucene的标记过滤器顺序的问题。例如,如果我想使用以下过滤器,lucene使用这些过滤器的顺序是什么?
1- LowerCaseFilter猫=>猫
2- TrimFilter猫!=>猫
3- StopFilter a cat => cat
4- LengthFilter
5- StemmerFilter
6- SynonymFilter
我找不到任何解释这个序列的文档。
发布于 2013-06-22 01:49:07
过滤器的排序取决于您的需要。然而,您的订购似乎是合理的。
需要注意的是,我不相信TrimFilter会做你指定的事情。TrimFilter从标记中修剪空格,而不是标点符号。大多数Tokenizer使此过滤器变得不必要。
TrimFilter和LowerCaseFilter通常较早使用,因此对单词内容进行操作过滤器不必处理大小写或空格。
StopFilter和LengthFilter的操作类似,我通常会在词干提取之前使用它们。被StopFilter删除的单词通常是非常原子的,所以在Stemmer之前应用它是有意义的。在词干分析器之后应用这些过滤器可能会导致丢失您不想要的有意义的词干。如果你确实想让你的StopFilter对词干的单词进行操作,那么它当然需要在Stemmer之后。
SynonymFilter是否会在Stemmer之后推出,这当然取决于你的需求。跟在Stemmer后面的SynonymFilter通常更有用,但需要您使用同义词的词干形式来定义它们
https://stackoverflow.com/questions/17240471
复制相似问题