按 'vespa.ai' 中的日期属性对结果集进行排序

Sorting result set by date attribute in 'vespa.ai'

如何按日期(unixtime)对结果集进行排序?

search post {
    document post {
        field created type long {
            indexing: summary | attribute
        }
        field description type string {
            indexing: summary | index
        }
    }
    rank-profile date inherits default {
        first-phase {
            expression: attribute(created)
        }
    }
}

卷曲:

curl -s -H "Content-Type: application/json" --data
    '{"yql" : "select * from post where description contains \"computer\";","ranking":"date"}'
    http://localhost:8080/search/ | jq .

结果集未按 'created' 排序。 'relevance' 始终为零:

{
    "id": "id:post:post::1",
    "relevance": 0,
    "source": "content",
    "fields": {...}
}

对于长属性的直接排序,使用 sorting/ordering 功能比更强大但更昂贵的排名框架更有效。

如排序文档中所述,对于 sorting/ordering 的查询,建议使用内置的 unranked 排名配置文件。另外,我不确定在使用 JSON 查询语言时是否允许使用 ranking 别名 - 我相信您需要使用完整的 ranking.profile参数嵌套在JSON中。

您的 curl 将类似于:

curl -s -H "Content-Type: application/json" --data
    '{"yql" : "select * from post where description contains \"computer\" order by created desc;","ranking": { "profile" : "unranked" } }'
    http://localhost:8080/search/ | jq .