SOLR-查询时忽略停用词

时间:2018-10-15 15:49:12

标签: solr

我配置了一个在索引时间和查询时间都使用停用词的字段类型。但是,当我使用分析器分析此字段类型时,我看到那些停用词并且仅从索引端而不是在查询端被删除。这是来自managed_schema文件的字段类型:

[-0.15  0.45 -0.35  0.05]

1 个答案:

答案 0 :(得分:2)

您在查询侧使用KeywordTokenizer。 KeywordTokenizer不执行任何操作-即它 not 不会拆分输入字符串并输入多个令牌。停止过滤器可用于标记,并且由于整个输入字符串现在为一个大标记,因此所有标记均不匹配停用词列表。

鉴于the input string,当由StandardTokenizer编制索引时,它将分为三个标记:theinputstringthe通常被视为停用词并被删除,您最终在索引中使用inputstring

在查询和输入the input string时,KeywordTokenizer除了将所有内容都保留为单个令牌外什么也不做,因此StopFilter仅看到the input string。这与任何停用词都不匹配(除非您将整个字符串本身作为停用词),并且不会删除任何内容。

如果这是您想要的行为,则必须使用Tokenizer将字符串拆分为单独的令牌,StandardTokenizerWhitespaceTokenizer可能是不错的选择。