2015-01-15 52 views
0

我試圖查看是否可以使用Solr boost函數查詢中的條件。現在,我正在使用以下函數來提升Likes數據。Solr:如何在Boost函數查詢中添加條件

bf=recip(ms(NOW/DAY,PublishDate),3.16e-11,1,1)^2.0 sum(Likes,2) 

我想要做的就是根據一些條件對「喜歡」應用提升。 例如

如果源= 「A」 或 「B」 或 「C」,然後總和(喜歡,4)

別的-如果源= 「d」,則總和(喜歡,3)

別的總和(喜歡,2)。

「if」函數適用於單個條件,但不知道如何解決if-else條件。

if(termfreq(Source2,'A'),sum(Likes,3),0) 

我想避免由於性能開銷嵌套查詢。

任何指針將不勝感激。

-Thanks,

Shamik

回答

1

好了,經過一番研究,我找到了正確的語法。

if(termfreq(Source2,'A'),sum(Likes,3),if(termfreq(Source2,'B'),sum(Likes,3),0)) 

希望對他人有所幫助。

+0

你知道在termfreq' fq中使用通配符嗎?所以你可以使用'termfreq(文本,管理*)'來匹配「經理」,「管理」和「管理」? –