【问题标题】:solr sort by logic based field selectionsolr 按基于逻辑的字段选择排序
【发布时间】:2014-01-20 10:55:28
【问题描述】:
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 查询。

任何帮助将不胜感激

谢谢!

【问题讨论】:

    标签: php mysql solr lucene


    【解决方案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”并在索引时相应地填充它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-23
      • 1970-01-01
      相关资源
      最近更新 更多