"Обратное форматирование" Результаты поиска Riak

Допустим, у меня есть объект в test ведро в моей установке Riak со следующей структурой:

{
    "animals": {
        "dog": "woof",
        "cat: "miaow",
        "cow": "moo"
    }
}

При выполнении поискового запроса для этого объекта структура результатов поиска выглядит следующим образом:

{
    "responseHeader": {
        "status": 0,
        "QTime": 3,
        "params": {
            "q": "animals_cow:moo",
            "q.op": "or",
            "filter":"",
            "wt": "json"
        }
    },
    "response": {
        "numFound": 1,
        "start": 0,
        "maxScore": "0.353553",
        "docs": [
            {
                "id": "test",
                "index": "test",
                "fields": {
                    "animals_cat": "miaow",
                    "animals_cow": "moo",
                    "animals_dog": "woof"
                },
                "props": {}
            }
        ]
    }
}

Как вы можете видеть, как хранится объект, cat, cow а также dog ключи вложены в animals, Однако, когда результаты поиска возвращаются, ни один из ключей не является вложенным и просто разделяется _,

Мой вопрос заключается в следующем: есть ли способ, предоставленный Riak, чтобы "отформатировать" поиск и вернуть поля объекта в правильном (вложенном) формате? Это становится проблемой при хранении и возврате пользовательских данных, которые могут содержать _,

Я вижу, что в последней версии Riak (бета-версия) представлена ​​схема поиска, но я не могу понять, будет ли на этот вопрос дан ответ.

1 ответ

Решение

В результате поиска вы получаете то, как выглядел объект после прохождения через анализатор json. Если вам нужны данные, отформатированные по-другому, вы можете использовать собственный анализатор. Однако это повлияет только на новые данные.

Для существующих данных вы можете использовать id и введите запрос get для исходного объекта или используйте запрос solr в качестве входных данных для задания MapReduce.

Другие вопросы по тегам