0
我遇到了一个问题,我的索引和查询完全相同,但是没有返回结果。它似乎失败了任何长于ENGTF最大长度的单词。这是我的模式。调试器中的文本匹配,但没有返回结果
<fieldType name="text_en_splitting" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="lang/stopwords_en.txt"
enablePositionIncrements="true"
/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1" stemEnglishPossessive="0" preserveOriginal="1" types="wdfftypes.txt" protected="protwords.txt"/>
<filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
<filter class="solr.ASCIIFoldingFilterFactory" words="mapping-FoldToASCII.txt"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="3" maxGramSize="10" side="front"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
<filter class="solr.ASCIIFoldingFilterFactory" words="mapping-FoldToASCII.txt"/>
</analyzer>
</fieldType>
下面是分析仪的屏幕截图时,“满意”是投入指数,和“满意”放入查询。
任何想法?谢谢
没错,这是那种我不得已修复。我试图避免这种情况,因为这是一个绝对不应该有必要的解决方法。 – Tanner
这不是一个真正的巨大解决方法。当您希望以两种不同方式处理输入时,使用这种常用技术。对于只需要一个简单n-gram过滤器的人来说,如果它按照您的意愿开始匹配整个令牌,他们可能会有些沮丧。 – Kevin