我正在使用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
也可能需要重建索爾的索引 –