我正在使用apache solr 3.1和drupal通过顶部的指定搜索词提高搜索结果
如何在搜索字段中指定的顶部提升搜索结果?
实施例中的搜索字段中,如果用户输入继续,solr的示出了具有连续性上部,且一个与继续下面,我要显示所述一个与继续上述比文档连续性
http://localhost:8983/solr/select/?q=continuing&qf=title&fl=title%20score&bq=title:continuing^10.0
我正在使用apache solr 3.1和drupal通过顶部的指定搜索词提高搜索结果
如何在搜索字段中指定的顶部提升搜索结果?
实施例中的搜索字段中,如果用户输入继续,solr的示出了具有连续性上部,且一个与继续下面,我要显示所述一个与继续上述比文档连续性
http://localhost:8983/solr/select/?q=continuing&qf=title&fl=title%20score&bq=title:continuing^10.0
看来你有词干在过滤器链,由于其持续的和连续性和MAPP编辑到同一根,将被视为平等。
你想要检查你正在使用的stemmer,并希望根据你的需要得到一个。默认的porter stemmer非常激进,你可能需要一个不太积极的选择。
Solr目前不会提升精确匹配,高于生成相同根的其他条款。
一种选择是在你的模式中有两个字段。
朵朵(title_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
感谢帕蒂尔我只是说<字段名= “title_unstem” 类型= “文本” 收录= “真正的” 存储= “真” termVectors = “假” omitNorms = “假”/ >和 但它给了我相同的reult plz帮助 –
您的字段类型似乎是相同的“文本”。用一个例子编辑了答案。 – Jayendra
也可能需要重建索尔的索引 –