SOLR按分数语法排序

时间:2012-03-13 00:23:45

标签: solr

我的solr webrequest看起来像这样

  

http://XXX.XX.XX.XX:8080/search/select?q=bay   城市&安培; DEFTYPE = dismax&安培; QF =屏幕名^ 10 + screenname1 ^ 100.0 +评论^ 50 + tagwords ^ 10 + spottype ^ 40 + spotscene ^ 50 + spotscenecategory ^ 50&安培; BQ = locationid:22878 ^ 40&安培;毫米= 1&安培;开始= 0安培;行= 40reccount   desc& fq = locationid:22878或   查询:“{!bbox}”& sfield = location& pt = 34.0194543,-118.4911912& d = 8& fl = profileid,screenname1,reccount,score,locationid& sort = score   降序

我在这里使用& sort = score desc

现在看起来像@sort=sum(log(popularity),score) desc

但我这样使用它给我错误

sort param无法解析为查询,也不是索引中存在的字段:sum(log(popular),score)

2 个答案:

答案 0 :(得分:2)

我认为,问题是score是伪字段而不是实际索引的字段。也许您可以尝试使用相关性函数代替score(如果您使用的是Solr 4.0)。但是,我认为你要做的是根据popularity 提升得分。在这种情况下,你想看看这里: http://wiki.apache.org/solr/SolrRelevancyFAQ#How_can_I_change_the_score_of_a_document_based_on_the_.2Avalue.2A_of_a_field_.28say.2C_.22popularity.22.29

答案 1 :(得分:2)

我有同样的问题, 我用这个解决了这个问题:

  

& sort =得分desc,sum(log(流行度))