Solr:查询短语 returns 在某些情况下会产生结果,而在某些情况下不会

Solr: the query phrase returns results for some cases and doesn't for some

我得到以下 Solr 结果:

但我没有得到以下结果:

所有这些都在肯定包含这些短语的文本字段中,并且我在索引器上使用了 ngram 过滤器,因此组合确实存在。 虽然 solr UI 的分析选项卡准确地显示了我的期望,但我的 java 输出没有得到所需的结果。

我的solrj代码如下:

query.setQuery("full_text:\"World Health Organisation\"");

此外,我必须添加 \".."\,因为如果我删除它们,我的前端总是会出错,否则我得到的一半结果也不会出现。

有人可以帮忙解决我可能遗漏的问题吗?

非常感谢!

编辑包含:full_text 在schema.xml

中的定义
<field name="full_text" type="text_en" indexed="true" stored="false" multiValued="true"/>   
   <copyField source="title" dest="full_text"/>
   <copyField source="content" dest="full_text"/>

   <fieldType name="text_en" class="solr.TextField" positionIncrementGap="100">>
      <analyzer type="index">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_en.txt"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.EnglishPossessiveFilterFactory"/>
        <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
        <filter class="solr.PorterStemFilterFactory"/>
        <filter class="solr.NGramFilterFactory" minGramSize="3" maxGramSize="20"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_en.txt" />
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.EnglishPossessiveFilterFactory"/>
        <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
        <filter class="solr.PorterStemFilterFactory"/>
      </analyzer>
    </fieldType>

解法: 我想出了问题是什么。对于 "Sports (UK)" 和“1-percent”的情况,我使用的标记器删除了所有特殊字符,因此我更改了标记器。 至于 "World Health Organisation:, it was caused by the stemmer which changed Organisation to Organis and query like "Organisat" 则保持原样。 因此我没有得到结果。所以我删除了词干分析器,因为我正在使用 ngram 过滤器。

希望这对长期 运行 中的其他人有所帮助。 :)

找出问题所在。 对于 "Sports (UK)" 和“1-percent”的情况,我使用的标记器删除了所有特殊字符,因此我更改了标记器。 至于"World Health Organisation",是由于词干分析器将Organisation改为Organis,而"Organisat"等查询保持原样。因此我没有得到结果。所以我删除了词干分析器,因为我正在使用 ngram 过滤器。