当包含一个停用词的短语时,如何在solr中停止结果?

Sri*_*m M 6 search solr tokenize stop-words

在使用Solr搜索具有停用词的短语时遇到问题.Solr使用stopword发送结果,这不是我预期的输出.

我在stopwords.txt文件中添加了一个单词"test" .在schema.xml文件中,我有像这样的字段

<field name="searchword" type="text" indexed="true" stored="true"   />
Run Code Online (Sandbox Code Playgroud)

我索引了一些数据,然后尝试在solr浏览器窗口中搜索如下:searchword:"test",我没有得到结果.然后我又给了一个像searchword这样的短语:"测试数据",我得到了结果.如何避免这种情况?如果它包含停止词Solr不应该给出任何结果.当包含一个停用词的短语时,如何在solr中停止结果?

以下是我正在使用的fieldType:

<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="index">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.CommonGramsFilterFactory" words="stopwords.txt" ignoreCase="true"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
    </analyzer>
    <analyzer type="query">         
        <tokenizer class="solr.WhitespaceTokenizerFactory" />
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" type="phrase"/>
    </analyzer>
</fieldType>
Run Code Online (Sandbox Code Playgroud)

我需要解决方案Solr没有提供任何结果,而我给出包含禁用词的短语(测试)

Hug*_*oza 1

“停止”词是在搜索中不考虑的词;这并不是一个“停止”或使结果无效的词。因此,您解释的行为是正确的:这就是停用词应该做的事情。

据我所知,在 SOLR 中,每当您使用特定单词(也许有人有想法?)时,没有办法“阻止”结果形式返回。

我唯一能想到的是: - 当您观察查询中的这些术语时,不要将查询发送到 SOLR :) - 在索引它们之前从文档中删除这些术语(例如使用 UpdateRequestProcessor)并使用 AND 查询,这样,每当查询中出现未索引的术语时,您将得到零结果