我想基于live_date,标题和关键字来提升内容。
1)我可以使用qf和pf来增强标题和关键字:
?q=mySearchTerm&fl=id,title,live_date,content,score&sort=score desc&qf=title^2.0 keywords^1.2 content^1.0&pf=title^2.0 keywords^1.2 content^1.0
2)我可以通过使用函数来提升live_date到现在计算live_datetime并应用recip函数:
?q={!boost b=$recency v=$qq}&recency=recip(ms(NOW/HOUR,live_datetime),3.16e-11,0.08,0.05)&qq="mysearchTerm"&sort=score desc
3)如何组合1)和2)以便我可以同时提升live_date + title和keyword?我试过这个却失败了。有人能指出这个问题吗?感谢。
?q={!boost b=$recency v=$qq}&recency=recip(ms(NOW/HOUR,live_datetime),3.16e-11,0.08,0.05)
&qq="mysearchTerm"&qf=title^2.0 keywords^1.2 content^1.0&pf=title^2.0 keywords^1.2 content^1.0&fl=live_datetime,score
请指教。非常感谢。
答案 0 :(得分:1)
为什么不使用像:
这样的提升功能?q =“mysearchTerm”& qf = title ^ 2.0 keywords ^ 1.2 content ^ 1.0& pf = title ^ 2.0 keywords ^ 1.2 content ^ 1.0& fl = live_datetime,score& bf = recip(ms(NOW) /小时,live_datetime),3.16e-11,0.08,0.05)^ 5
答案 1 :(得分:1)
?q={!boost b=$recency v=$qq}&recency=recip(ms(NOW/HOUR,live_datetime),3.16e-11,0.08,0.05) &qq="mysearchTerm"&qf=title^2.0 keywords^1.2 content^1.0&pf=title^2.0 keywords^1.2 content^1.0&fl=live_datetime,score
基于你说做工作的例子,我怀疑你在solrconfig.xml中为你的请求处理程序配置了“defType = dismax”或“defType = edismax” - 这是唯一的原因你的例子#1会关注你的qf和pf params。
defType仅适用于解析当前上下文的主查询(即:顶级请求中的“q”;子查询中的v),在您的示例#2和#3中,您使用的是localparam语法来覆盖那。为了确保使用dismax / edismax解析您的“qq”参数,您需要将defType指定为正在解析qq的上下文的本地参数...
?q={!boost b=$recency defType=edismax v=$qq}&recency=recip(ms(NOW/HOUR,live_datetime),3.16e-11,0.08,0.05)&qq="mysearchTerm"&qf=title^2.0 keywords^1.2 content^1.0&pf=title^2.0 keywords^1.2 content^1.0&fl=live_datetime,score
...OR...
?q={!boost b=$recency defType=dismax v=$qq}&recency=recip(ms(NOW/HOUR,live_datetime),3.16e-11,0.08,0.05)&qq="mysearchTerm"&qf=title^2.0 keywords^1.2 content^1.0&pf=title^2.0 keywords^1.2 content^1.0&fl=live_datetime,score
或者,如果您使用的是edismax,那么您可以使用edismax解析器的“boost”参数,以更简单的语法完成相同的操作,而不是使用“boost”QParser来包装“edismax”QParser。 ..
?q="mysearchTerm"&boost=recip(ms(NOW/HOUR,live_datetime),3.16e-11,0.08,0.05)&qf=title^2.0 keywords^1.2 content^1.0&pf=title^2.0 keywords^1.2 content^1.0&fl=live_datetime,score