Как отправить параметры в запрос 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 3

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\"}"}},