2011-10-11 59 views

回答

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 
+0

感谢帕蒂尔我只是说<字段名= “title_unstem” 类型= “文本” 收录= “真正的” 存储= “真” termVectors = “假” omitNorms = “假”/ >和但它给了我相同的reult plz帮助 –

+0

您的字段类型似乎是相同的“文本”。用一个例子编辑了答案。 – Jayendra

+0

也可能需要重建索尔的索引 –