我对lucene的tokenfilters命令有疑问。例如,如果我想要跟随过滤器,那么lucene使用这些过滤器的顺序是什么?
1- LowerCaseFilter Cats =>猫
2- TrimFilter 猫! =>猫
3- StopFilter 一只猫=>猫
4- LengthFilter
5- StemmerFilter
6- SynonymFilter
我找不到任何解释这个序列的文件。
答案 0 :(得分:0)
过滤器的排序取决于您的需求。但是,您的订购似乎是合理的。
请注意,我不相信TrimFilter
执行您指定的操作。 TrimFilter
修剪令牌中的空格,而不是标点符号。大多数Tokenizers都不需要这个过滤器。
TrimFilter和LowerCaseFilter通常会提前使用,因此对单词内容进行操作的过滤器不必处理大小写或空格。
StopFilter和LengthFilter的操作方式类似,我通常会在词干之前使用它们。 StopFilter删除的单词通常非常原子,所以在Stemmer之前应用它是有道理的。在割除器之后应用这些过滤器可能会导致丢失您没有想要的有意义的茎。如果你做希望你的StopFilter对词干词进行操作,那么它当然需要在Stemmer之后。
SyntemFilter是否在Stemmer之后完全取决于您的需求。遵循Stemmer的SynonymFilter通常会更有用,但需要您使用其词干表格来定义同义词