我有一个简单的索引,输出1000到12000的“分数”,增量为1000.我想得到一系列的结果,例如从高分数到高分数;
q=score:[1000 TO 3000]
但是,这总是返回一个从3000开始的匹配列表,并且根据限制(和匹配数量),它可能永远不会返回任何1000个匹配,即使它们存在。我试过使用sort:+ - 和分组但似乎没有任何东西对返回的结果有任何影响。
因此;如何控制返回结果的顺序?
我理想的是从范围中选择匹配但我假设这是不可能的,因为查询刚开始从顶部填充结果?
作为参考,索引如下所示;
function(doc) {
var score = doc.score;
index("score", score, {
"store": "yes"
});
...
答案 0 :(得分:0)
我无法对此发表评论,所以在这里发布答案:
基于lucene查询的cloudant doc,没有一种方法可以对查询结果进行排序。给出的排序选项用于分组。即使对于分组结果,我也从未看过排序工作。无论如何,它应该对组本身的序列进行排序。不是其中的数据。
答案 1 :(得分:0)
@ pal2ie你是对的,Cloudant回复给我确认了。它在某种程度上确实有意义,但我希望我至少可以控制方向(lo-> hi,hi-> lo)。我实现的在整个范围内获得更好分布的解决方案是不使用范围查询,而是使用
它不是最有效的,因为它意味着多次往返服务器,但至少它让我可以完全控制范围内的分布