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查询。
非常感谢任何帮助
谢谢!
答案 0 :(得分:1)
查看函数查询作为返回字段和排序字段: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',并在索引时相应地填充它。