我正在开发rails应用程序,它基于Apache Solr搜索引擎,我们使用的是Sunspot gem。但是我遇到了一个问题,如果我搜索查询source of source
,那么它会使用and
结果给我数千个结果。但是我觉得在结果相关的第5个结果后,前5个结果并不相关。前5个结果只包含源字多次,但我的第6个结果包含精确查询i.e source of source
所以我想重点说明包含我的查询文本的文档。我也尝试使用boost并且还提升了文档,但没有得到正确的结果。任何人都可以帮我找到一种方法来更加重视包含我的查询的文档,而不是包含更多词源的文档,来源?
我的schema.xml包含以下代码
<fieldType name="text" class="solr.TextField" omitNorms="false">
<analyzer>
<tokenizer class="solr.PatternTokenizerFactory" pattern="[\s,\.;\(\)]+"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
<charFilter class="solr.HTMLStripCharFilterFactory"/>
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
</fieldType>
<!-- *** This fieldType is generated for exact match boosting *** -->
<fieldType name="text_exact" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
任何帮助都是适当的