【问题标题】:Solr sort by min of two fields?Solr 按两个字段的最小值排序?
【发布时间】:2011-09-30 10:33:19
【问题描述】:

我想按几个字段的最小值对结果集进行排序。

所以在阅读了函数查询文档之后,我想到了:

sort={!func}min(dvd_available_from_tdt,dto_available_from_tdt)%20desc

我也试过了:

sort=_val_:min(dvd_available_from_tdt,dto_available_from_tdt)%20desc

sort=_val_:"min(dvd_available_from_tdt,dto_available_from_tdt)"%20desc

sort=_val_:"min(dvd_available_from_tdt,dto_available_from_tdt)%20desc"

sort="{!func}min(dvd_available_from_tdt,dto_available_from_tdt)"%20desc

sort={!func}min(dvd_available_from_tdt,dto_available_from_tdt)%20desc

sort="min(dvd_available_from_tdt,dto_available_from_tdt)"%20desc

以及引号的其他一些位置。但不管我总是得到这个错误:

HTTP 错误:400

缺少排序顺序。

谁能指出我正确的方向?

【问题讨论】:

    标签: search sorting select lucene solr


    【解决方案1】:

    尝试使用匹配所有文档的查询,具有恒定分数,外加一个函数。

    http://localhost:8983/solr/select/?q=%3A+_val_:price&version=2.2&start=0&rows=10&indent=on&debugQuery=true

    此外,升级到 Solr 3.3 并没有那么痛苦,而且还有各种很酷的新玩具,比如按功能排序。

    【讨论】:

    • 好主意!我的问题是可以应用很多因素,并且查询解析器是 dismax。我已经编写了一个更新的 shell 脚本,我将在明天运行。我是否正确地假设我可以复制数据目录并保留索引?它们完全兼容吗?到目前为止,我在开发系统上的测试没有显示任何错误。
    【解决方案2】:

    它似乎只在 solr 3.1 中可用。我正在运行 1.4.1

    http://wiki.apache.org/solr/FunctionQuery#Sort_By_Function

    【讨论】:

      猜你喜欢
      • 2015-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-12
      • 2019-03-19
      • 1970-01-01
      • 1970-01-01
      • 2011-06-02
      相关资源
      最近更新 更多