我正在使用apache solr 3.1和drupal
如何在搜索字段中指定的顶部提升结果?
搜索字段中的示例,如果用户输入继续,则solr会在顶部显示 Continuity 的文档,并在下方显示继续的文档,我希望显示连续性
继续的http://localhost:8983/solr/select/?q=continuing&qf=title&fl=title%20score&bq=title:continuing ^ 10.0
答案 0 :(得分:0)
似乎你在过滤器链中有一个词干分析器,由于它继续和连续性并映射到相同的根并且将被视为相等。
你想要检查你正在使用的割线机,并希望根据你的需要得到一个。默认的porter stemmer是非常激进的,你可能想要一个不那么激进的选项。
Solr目前不会比生成相同根的其他术语提高精确匹配 一种选择是在您的架构中有两个字段 Stemmed(title_stemmed)和非Stemmed版本(标题 - 没有词干过滤器)
示例 -
schema.xml -
<!-- Without Porter Stemmer -->
<fieldType name="text_non_stemmed" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<!-- With Porter Stemmer -->
<fieldType name="text" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
</fieldType>
<field name="title" type="text" indexed="true" stored="true" termVectors="false" omitNorms="false"/>
<field name="title_non_stemmed" type="text_non_stemmed" indexed="true" stored="true" termVectors="false" omitNorms="false"/>
<copyField source="title" dest="title_non_stemmed"/>
你可以对字段进行加权 -
solrconfig.xml - 修改默认请求处理程序
<requestHandler name="search" class="solr.SearchHandler" default="true">
<lst name="defaults">
<str name="echoParams">explicit</str>
<str name="defType">dismax</str>
<str name="qf">
title_non_stemmed^1 title^0.8
</str>
<str name="q.alt">*:*</str>
<str name="rows">10</str>
<str name="fl">*,score</str>
</lst>
</requestHandler>
这样精确匹配产生的得分高于非完全匹配,并显得更高。
网址 -
http://localhost:8983/solr/select/?q=continuing