solr通过更多内容提升相关文档

时间:2012-10-31 21:27:01

标签: search solr solr-boost

我的文件包含很少的单词,很少的句子和包含大量文本的文档。当用户搜索某些内容时,solr会首先为文档提供最相关的文本,最后会为文档提供最多的文本。但是对用户来说,相关性应该是不同的。第一个结果应该是相关的,但也需要包含更多文本,因为用户需要获得最相关的文档,但需要更多文本 - 阅读一些内容。

那么我怎样才能首先获得相关文档,但是首先获得更多文本的文档,而不是那些具有多个单词的文档。我正在使用一个文本字段并在其中搜索。

1 个答案:

答案 0 :(得分:0)

Lucene使用的DefaultSimilarity类有一个scoring算法,它有一个lengthNorm计算方法,可以增加文本内容,而不是内容更多的内容。
基本上根据条款数量 您可以轻松扩展Similarity类,为LengthNorm提供自定义实现,使得基于NumOfTerms的计算无效。 然后可以在schema.xml中指定该类,以便核心使用它。

  

“甜蜜的人计算所有长度的恒定标准   [min,max]范围(“最佳位置”)和较小的范数值   长度超出此范围。文件比甜的更短或更长   现场范围是“受到惩罚”

min和max的默认值为1,因此它不适用于您。 尝试设置值,例如: -

 <similarity class="org.apache.lucene.misc.SweetSpotSimilarity"> 
   <str name="paramkey">param value</str> 
 </similarity>