2014-01-20 49 views
0
SELECT id, first_qualified, publish_date, from_date, 
CASE WHEN first_qualified =0 
THEN publish_date 
ELSE from_date 
END sortdate 
FROM `jobs` 
ORDER BY `sortdate` DESC 

我想用solr Version:3.6來表示上面的mysql查詢。solr根據邏輯字段選擇排序

任何幫助將不勝感激

謝謝!

回答

1

查看Function Queries作爲返回字段和排序字段:http://wiki.apache.org/solr/FunctionQuery

這應返回其他字段「sortdate」和對應的排序順序適用於您的SQL

fl=*,sortdate:if(exists(query({!v='first_qualified:0'})),publish_date,from_date)&sort=if(exists(query({!v='first_qualified:0'})),publish_date,from_date) desc 

注意查詢功能可以在您的查詢速度下降。在模式中創建一個字段「sortdate」並在索引時相應地填充它可能會更好。