在对记录排名的想法进行了多次角力之后,我最终确定了我的文档的基于数字的分数,我发出这些分数以根据这些分数对它们进行排序。
现在这些数字有意义,其中前 2 位数字代表特定类型的文档。
因此,要根据分数对类型 22 的文档进行排序,我只需查询开始键为 220000 且结束键为 229999 的视图
这一切都很好并且有效,当我尝试使用 url 重写时会出现我的问题。
我基本上是在尝试重新路由:
/_rewrite/rankings/{doctype}
到
/_list/rankings?startkey=xx0000&endkeyxx9999
其中 xx 是 {doctype}
我的问题是指定重写规则:
[
{ "from":"rankings/:doctype",
"to":"_list/rankings",
"query": ??? //what will this be?
]
如何通过分别附加 0000 和 9999 来构造开始键和结束键?
如何指定数值?因为使用占位符 ":doctype" 将导致字符串类型而不是数字类型,即使我要修改漂亮的 url 以输入开始键和结束键,也会导致查询失败。
我通过在我的列表视图中过滤结果来解决这个问题(忽略我对 getRow() 不感兴趣的文档),我在这里关心的是,我现在应该担心列表函数的效率吗?
也可以随意评论我的排序策略.. 有兴趣知道其他人如何使用 couchdb 解决排序和切片问题