2011-06-30 108 views
0

背景:如何根据条件提高Solr搜索结果的分数?

1 - 我正在使用WebSolr进行此搜索。 2 - 我有两个字段存储在websolr - 名称和ID。

我想搜索基于名称这些条目并提高基于此标准的搜索比分:

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

从我的研究,答案就在下面的 - 功能查询,或 - DisMaxQParser

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

任何帮助表示赞赏。

回答

1

您可以使用提升。尝试像

name:searchString AND (id:[x1 TO xN] ^2 OR id:[y1 TO yN]^1) 
0

除了查询到HKN的方法,你也可以使用DisMax query parser升压查询:

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

(未经测试,而是应该传达的理念。)