Как отправить параметры в запрос map reduce
Я пишу запрос mapreduce в erlang для Riak и хочу передать параметры в Riak с помощью HTTP API через curl на терминале Ubuntu. Входные данные для запроса-это запрос 2i, но я хочу, чтобы параметр позволял дальнейшую фильтрацию. Я думал, что options-это ключевое слово, поскольку клиент python-это то, что я буду использовать в производстве, но это неудобно для проверки моего Erlang, и это ключевое слово всегда используется в моей команде.
Вот что я пытаюсь сделать:
curl -X POST http://riakhost:port/mapred -H 'Content-Type: application/json' -d '{
"inputs": {
"bucket":"mybucket",
"index":"field1_bin",
"key":"val3"
},
"options": "test",
"query": [
{"map": {"language": "erlang",
"module": "mapreduce",
"function":"map"
}},
]}'
На тройке набор записей, который я вижу:
["none", "none", "none"]
Но я хочу:
["test", "test", "test"]
Каков формат аргументов?
1 ответ:
Я разработал набор настраиваемых функций полезности для Riak mapreduce в Erlang. Поскольку я хотел иметь возможность задавать наборы критериев, я решил разрешить пользователю передавать конфигурацию в виде документа JSON, поскольку это хорошо работает для всех типов клиентов, хотя другие текстовые представления также должны работать. Примеры использования этих функций из curl доступны в файле README.файл уценки.
Вы можете передать аргумент каждой отдельной карте или уменьшить фазовую функцию через параметр 'arg'. Все, что вы укажете здесь, будет передано в качестве конечного параметра в фазу map или reduce, см. пример ниже:
"query":[{"map":{"language":"erlang","module":"riak_mapreduce_utils", "function":"map_link","keep":false, "arg":"{\"bucket\":\"master\"}"}},