我正在使用solr搜索来搜索我的用户名。我使用ngramfilterfactory进行索引,以便它搜索子字符串。但是,准确的单词匹配项得分不高于子字符串匹配项。
例如;我有两个用户名: Sara123 ,我是Sara 。当我搜索 Sara 时,所有这些文档都应返回,但“ I Am Sara”应是结果集中的第一个文档,因为Sara完全匹配其中一个单词。我有这个问题。感谢任何指针!
我正在使用SOLR 3.5,我的schema.xml具有以下相关条目:
<fieldType name="usernames" class="solr.TextField" positionIncrementGap="1">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory" />
<filter class="solr.WordDelimiterFilterFactory"
generateWordParts="1"
generateNumberParts="1"
catenateWords="1"
catenateNumbers="1"
catenateAll="0"
preserveOriginal="1"
/>
<filter class="solr.NGramFilterFactory" minGramSize="3" maxGramSize="200"/>
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
</fieldType>