【发布时间】:2013-02-25 02:17:18
【问题描述】:
我正在开发一个在后端使用 RavenDB 的应用程序。这是我第一次使用 Raven,我在 Map/Reduce 方面遇到了困难。
我一直是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},
...
]}
其中 Severity/Facility Array 中的“Key”是上述 json 数据的 Data 部分,Severity/Facility Array 中的“value”是每个 Code 类型的文档 Count。
示例:
以上述数据为指导,
我的数据库中有 2711 个文档,其严重性为
Info。
我的数据库中有 410 个文档,其严重性为Debug。
我的数据库中有 2574 个文档,带有local0设施。
等等……
我想做的是在应用启动时生成适当的索引(或检查它们是否已经存在),但我什至不知道从哪里开始。
注意:应用程序需要生成索引,仅手动将其写入 RavenDB Web UI 是不够的。
【问题讨论】:
-
Code属性是否需要对索引产生任何影响? -
Code和Data始终匹配。即:Code:6=Data:Info每次。 -
好的,但是您没有将它们包含在输出中,因此它们与此任务基本上无关,对吧?或者两个不同的代码具有相同的数据字符串是否存在冲突的风险?
-
另外,您的样本结果中显示为零。除非您有一些列出所有不同代码的第三个文档或一组文档,否则这是不可能的。换句话说,如果它不在任何文档中,您将如何将其放入结果中?
-
我正在制定解决方案。如果您确实有一个或多个包含所有代码/数据对的文档 - 请告诉我。我可以对此进行优化。