如何根据标准提高Solr搜索结果的得分?

时间:2011-06-30 04:33:56

标签: ruby-on-rails lucene solr websolr

背景:

1 - 我正在使用WebSolr进行此搜索。 2 - 我在websolr中存储了两个字段 - name和id。

我想根据名称搜索这些条目并根据此条件提高搜索分数:

if id in [x1,x2..xN] then +2
if id in [y1,y2..yN] then +1
else +0

根据我的研究,答案如下 - 函数查询,或 - DisMaxQParser

我查看过文档,但IMO并不是很全面。

感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

你可以使用提升。尝试像

这样的查询
name:searchString AND ( id:[x1 TO xN] ^2 OR id:[y1 TO yN]^1)

答案 1 :(得分:0)

除了hkn的方法,您还可以使用DisMax query parser提升查询:

q=queryString
&defType=dismax
&qf=…
&bq=id:[x1+TO+xN]^3
&bq=id:[y1+TO+yN]^2

(未经测试,但应传达这个想法。)