背景:
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 - 我正在使用 WebSolr 进行此搜索。2 - 我在 websolr 中存储了两个字段 - 名称和 ID。
我想根据名称搜索这些条目并根据以下条件提高搜索分数:
if id in [x1,x2..xN] then +2
if id in [y1,y2..yN] then +1
else +0
根据我的研究,答案在于以下 - 函数查询,或 - DisMaxQParser
我查看了文档,但 IMO 不是很全面。
任何帮助表示赞赏。
你可以使用提升。尝试像这样的查询
name:searchString AND ( id:[x1 TO xN] ^2 OR id:[y1 TO yN]^1)
除了 hkn 的方法,您还可以使用DisMax 查询解析器增强查询:
q=queryString
&defType=dismax
&qf=…
&bq=id:[x1+TO+xN]^3
&bq=id:[y1+TO+yN]^2
(未经测试,但应该传达这个想法。)