Я работаю над приложением, которое использует RavenDB на задней панели. Это мой первый опыт использования Raven, и я борюсь с Map/Reduce.Как правильно создать индекс карты/уменьшения для RavenDB в C#
Я был reading the doc's, но, к сожалению, я не получаю нигде в этом процессе.
В основном у меня есть тысячи таких документов.
{
.....
"Severity": {
"Code": 6,
"Data": "Info"
},
"Facility": {
"Code": 16,
"Data": "Local Use 0 (local0)"
},
.....
}
И из этого, мне нужно сделать один запрос с выходом, который выглядит следующим образом.
{"Severity": [
{"Emergency":0},
{"Alert":0},
{"Critical":0},
{"Error":0},
{"Warning":0},
{"Notice":0},
{"Info":2711},
{"Debug":410}
],
"Facility": [
{"Kernel Messages":0},
{"User-Level Messages":0},
{"Mail System":0},
{"System Daemons":0},
{"Security/Authorization Messages":0},
{"Internal Syslogd Messages":0},
{"Line Printer Subsystem":2711},
{"Network News Subsystem":410},
....
{"Local Use 0 (local0)": 2574},
...
]}
Причем «ключ» в массиве Серьезность/Facility является Data
часть приведенных выше данных JSON, и «значение» в массиве Серьезность/Facility является документом Count
для каждого типа Code
.
Пример:
Используя приведенные выше данные, в качестве ориентира,
Есть 2711 документов в моей базе данных с
Info
тяжести.
В моей базе данных 410 документов с серьезностьюDebug
.
В моей базе данных 2574 документа с объектомlocal0
.
и т.д ...
То, что я хотел бы сделать, это генерировать соответствующие индексы, когда приложение запускается (или проверить, если они уже существуют), но я даже не знаю, где начать.
Примечание: приложение должно сгенерировать индекс, этого недостаточно, чтобы просто вручную записать его в веб-интерфейс RavenDB.
Нужны ли свойства 'Code' для индекса? –
«Код» и «Данные» всегда совпадают. IE: 'Код: 6' =' Данные: Информация' каждый раз. –
Хорошо, но вы не включаете их в вывод, поэтому они по сути не имеют отношения к этой задаче, не так ли? Или существует риск столкновения, что два разных кода будут иметь одну и ту же строку данных? –