给定Riak中的数字二级索引,我可以执行范围查询,例如:
“查找所有值*,索引"sn”在1和10之间“。
是否有方法为数字索引找到最大值?也就是说。
“查找索引”sn的最大值。
*它实际上找到了所有的主键(不是值本身),但在这里并不重要。
发布于 2012-06-07 21:56:37
不,你不能让Riak给你2i的最大值。您必须执行映射/减少作业,并解析每个2i值,其中包括一个约简作业,以找到最大值。
如果这是应用程序的一个重要部分,那么还有其他方法可以解决这个问题。一旦找到最大值,就可以向值中添加一个辅助索引,这表明它是最大值。如果最大值随时间而变化,则可以:
在桶( 2i for 1.
maxval_int索引,检查当前最大值,更新索引accordingly.类似于读取修复的小函数用于处理集群中节点被分区的情况。
HTH。
发布于 2012-06-09 17:23:46
或者,如果您的maxval单调地增加,您可以将它存储在特殊的键下,如max_2i_index=25,那么如果您将桶设置为允许兄弟姐妹,则可以通过提供简单的mutator和冲突解决程序来解决潜在的兄弟关系。你也可以考虑适当地设置R,W,PR,-N,以避免不一致。
https://stackoverflow.com/questions/10793760
复制相似问题