Solr停止字和空查询

Solr停止字和空查询,solr,stop-words,Solr,Stop Words,我有一个Solr实例,其中包含大量文档和一个索引字段 现在,我想在查询时完全忽略stopwords列表中包含的单词,从而在查询中应用stopwords列表来增加结果的数量 因此,在我的配置中,我在queryanalyzer中使用solr.StopFilterFactory 我期望的是,如果我只使用stopwords列表中的单个单词执行搜索,结果集与通配符查询相同,text\u title::,即完整文档集 但是我得到的结果是0。我是否遗漏了stopwords过滤器的行为?solr.StopFil

我有一个Solr实例,其中包含大量文档和一个索引字段

现在,我想在查询时完全忽略stopwords列表中包含的单词,从而在查询中应用stopwords列表来增加结果的数量

因此,在我的配置中,我在
query
analyzer中使用
solr.StopFilterFactory

我期望的是,如果我只使用stopwords列表中的单个单词执行搜索,结果集与通配符查询相同,
text\u title::
,即完整文档集


但是我得到的结果是0。我是否遗漏了stopwords过滤器的行为?

solr.StopFilterFactory

此筛选器丢弃或停止分析给定停止词列表上的标记。Solr配置目录中包含一个标准的停止词列表,名为stopwords.txt,适用于典型的英语文本

此筛选器实际上删除查询中的令牌,而不是替换为
*

例如:

In: "To be or what?"
Tokenizer to Filter: "To"(1), "be"(2), "or"(3), "what"(4)
Out: "To"(1), "what"(4)
尝试使用此筛选器。
解决方案建议StopFilterFactory

与停止筛选器类似,此筛选器丢弃或停止分析给定停止字列表上的标记。建议停止筛选器与停止筛选器的不同之处在于,它不会删除最后一个令牌,除非后面跟有令牌分隔符

您通常会在索引分析器中使用普通的StopFilterFactory,然后在查询分析器中使用SuggestStopFilter。

如果停止字后面没有标记分隔符,则此筛选器将从查询中删除该停止字

如何使用:

<analyzer type="query">
  <tokenizer class="solr.WhitespaceTokenizerFactory"/>
  <filter class="solr.LowerCaseFilterFactory"/>
  <filter class="solr.SuggestStopFilterFactory" ignoreCase="true" words="stopwords.txt" format="wordset"/>
</analyzer>

谢谢你的回答,但这并没有用:通过输入“
the
”和“stopwords”列表中的“
the
”,我希望将所有文档作为输出“
*
”。
In: "The The"
Tokenizer to Filter: "the"(1), "the"(2)
Out: "the"(2)