"Обратное форматирование" Результаты поиска 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.