【问题标题】:less than greater than filtered queries, aerospike小于大于过滤的查询,aerospike
【发布时间】:2014-06-07 07:03:57
【问题描述】:

我很难找到关于 aerospike 的有限文档。使用带或不带 lua 的 aerospike 过滤器,我可以:

  1. 在服务器端订购我的结果
  2. 使用过滤器进行大于/小于查询

基本上我想编码一个值(客户端)并从 aerospike 中检索第一行,其值大于编码的值。

另一种说法,与价格相反是对的...我能在 aerospike 中找到的最低值是多少,谁的值不低于我给出的值。

我喜欢一种简单的方法,但我也愿意解决问题(或者如果它不合理/不实用,则完全不接受)

【问题讨论】:

    标签: sql filter lua aerospike nosql


    【解决方案1】:

    在过去,您会将此表示为 stream UDF,但由于 release 3.12 predicate filter 将是正确的解决方案。

    查看 Java 客户端的 PredExp 类及其用于构建复杂过滤器的 examplesCC#Go 客户端当前也存在谓词过滤。

    【讨论】:

      【解决方案2】:

      大型列表 (LDT) 原生支持基本排序。

      在大型列表中,您的键(索引)始终默认以词法方式排序。

      请注意ldt-enabled true 指令必须出现在aerospike.conf 的命名空间配置区域中

      javascript 客户端示例

      var key = {ns: 'test', set: 'mySet', key: 'myKey'};
      var callback = function (status, result) {console.log(status, result)}
      
      var list = client.LargeList(key, 'targetBinName', null, callback));
      
      // add first item (also determinate the list values type) 
      list.add(1, callback);
      
      // add multiple items
      list.add([0, 2, 4, 5], callback);
      
      list.add(3, callback);
      
      // get all items
      list.scan(function (status, list) {
           // list = [0, 1, 2, 3, 4, 5]
      })
      
      // select by values range
      list.findRange(0, 3, callback)
      
      // filter using udf to do custom gt/lt filtering
      list.filter('udfName', callback)
      

      如果您需要存储对象,那么您必须添加一个key 属性,该属性将作为排序、范围、重复等的索引(默认情况下不允许重复)

      list.add({key: 1})
      list.add([{key: 0},{key: 2}])
      

      我相信其他语言的驱动程序或多或少都有相同的方法。

      更多关于Aerospike docs的大型列表

      Github 上 NodeJS 客户端中的大型文档列表部分

      【讨论】:

        【解决方案3】:
        1. Aerospike 本身不支持在服务器端对数据进行排序。
        2. Aerospike 支持查询过滤器。您可以根据需要指定范围过滤器。请参阅link 中的示例。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-08-17
          • 2021-11-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多