鉴于Riak中的数字二级索引,我可以进行范围查询,例如:
“找到所有值*,索引”sn“介于1和10之间。
有没有办法找到数字索引的最大值?即。
“找到索引”sn“的最大值。
*它实际上找到了所有主键(不是值本身),但这里没关系。
答案 0 :(得分:1)
不,你不能要求Riak给你2i的最大价值。您必须执行map / reduce作业并解析包含reduce作业的每个2i值以找到最大值。
如果这是您的应用程序的重要部分,还有其他方法可以解决问题。找到最大值后,可以为该值添加二级索引,表示它是最大值。如果最大值随时间变化,您可以:
maxval_int
的2i为1
的广告位上进行映射/缩小。maxval_int
索引。小型读取修复类函数用于处理群集中节点被分区的情况。
HTH。
答案 1 :(得分:0)
或者,如果您的maxval单调增加,您可以将其存储在特殊键下,例如max_2i_index = 25 然后,如果您将存储桶设置为允许兄弟姐妹,则可以通过提供简单的mutator和冲突解决程序来解决潜在的兄弟姐妹。您也可以考虑适当设置R,W,PR,PW,N以避免不一致。