2015-03-16 3 views
0

Могу ли я запросить массив вторичных индексов на задании сокращения карты в Riak вместо одного ключа? Я хочу сделать что-то вроде этого:Riak: массив запросов от 2i до карты Уменьшить

"inputs": { 
    "bucket": myBycket, 
     "index": "myIndex", 
     "key": key + " OR " + key + " OR " + key 
    }, 
    "query": [{ 
     "map": { 
      "language":"javascript", 
      "name":"Riak.mapValuesJson" 
     } 
    }] 
} 

Но я не нашел поддержки для этого. Ключи не имеют особого порядка, поэтому я не думаю, что могу использовать рядовые запросы.

ответ

1

Вы могли бы с этим справиться с помощью карты Уменьшить. Если вы назначите целевые ключи, вы можете ограничить диапазон и, возможно, повысить производительность.

{ 
"inputs": { 
    "bucket": myBycket, 
    "index": "myIndex", 
    "start": firstkey, 
    "end": lastkey 
    }, 
    "query": [{ 
     "map": { 
      "language":"javascript", 
      "source":"function(v) { 
         if (v.key == "key1" || v.key == "key2") { 
          return [<<put what you want returned here>>] 
         } else { 
          return [] 
         } 
         }" 
     } 
    }] 
} 

Следует отметить, что в соответствии с docs site Javascript Карта Уменьшить официально устаревшей, так что вы можете использовать функции Erlang для нового развития.

Смежные вопросы