solr基于逻辑的字段选择排序

时间:2014-01-20 10:55:29

标签: php mysql solr lucene

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查询。

非常感谢任何帮助

谢谢!

1 个答案:

答案 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',并在索引时相应地填充它。