根据提供的短语评分结果

时间:2010-11-01 13:59:41

标签: solr

让我们说用户输入搜索短语“世界和平”。但是,我们还要说索引包含一个标题为“我们将获得世界和平”的文件和一个标题为“世界和平,你在哪里?”的文件。

现在,有没有办法让以“世界和平”开头的文件比其他文件更大?换句话说,我希望匹配标题以要提升的短语开头。这可能与Solr一起实现吗?

2 个答案:

答案 0 :(得分:1)

恕我直言,这已由lucene scoring内部完成,但我不确定。不过你可以调整它。请继续阅读here (sweet spot)here

答案 1 :(得分:0)

您可以通过应用charFilter来实现与您想要的一致。它会在标记化之前影响输入字符串。在下面的示例中,charFilter会将AAAA添加到其应用的字段的开头。然后,您可以在查询中添加AAAA,以强制Solr支持与标题开头匹配的阶段。有关此方法和其他Solr提示的更多信息,请访问:

http://robotlibrarian.billdueber.com/tag/stupid_solr_tricks/

<fieldtype name="title_anchor" class="solr.TextField" positionIncrementGap="1000">
 <analyzer>
   <charFilter class="solr.PatternReplaceCharFilterFactory"
     pattern="^(.*)$" replacement="AAAA $1" />      
   <tokenizer class="solr.ICUTokenizerFactory"/>
     <filter class="solr.ICUFoldingFilterFactory"/>
     <filter class="solr.SynonymFilterFactory"
             synonyms="syn.txt"
             ignoreCase="true" expand="false"/>
     <filter class="solr.CJKWidthFilterFactory"/>
     <filter class="solr.CJKBigramFilterFactory"/>
 </analyzer>