SSSI目前已呼吁SchoolMetrics其聚集在校场为重点的几个领域,并产生的文件这样的索引上嵌套属性:RavenDB指数查询
{
School: {
SchoolId: 1234
Name: "asdf"
}
StudentCount: 1234,
CourseCount: 1234
}
我的指数图的定义为:
from s in docs.Metrics
where s.School != null
select new
{
s.School,
s.StudentCount,
s.CourseCount
}
而且减少是:
from s in results
group s by s.School
into g
select new
{
School= g.Key,
StudentCount = g.Sum(x => x.StudentCount),
CourseCount = g.Sum(x => x.CourseCount)
}
当我尝试做一个查询这样的答: http://localhost:8080/databases/Database/indexes/SchoolMetrics?query=School.SchoolId:1234
它给我这个错误:
"System.ArgumentException: The field 'School.SchoolId' is not indexed, cannot query on fields that are not indexed
at Raven.Database.Indexing.Index.IndexQueryOperation.AssertQueryDoesNotContainFieldsThatAreNotIndexes() in c:\Builds\raven\Raven.Database\Indexing\Index.cs:line 639
at Raven.Database.Indexing.Index.IndexQueryOperation.<Query>d__24.MoveNext() in c:\Builds\raven\Raven.Database\Indexing\Index.cs:line 558
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at System.Collections.Generic.List`1.InsertRange(Int32 index, IEnumerable`1 collection)
at Raven.Database.DocumentDatabase.<>c__DisplayClass70.<Query>b__68(IStorageActionsAccessor actions) in c:\Builds\raven\Raven.Database\DocumentDatabase.cs:line 705
at Raven.Storage.Esent.TransactionalStorage.ExecuteBatch(Action`1 action) in c:\Builds\raven\Raven.Storage.Esent\TransactionalStorage.cs:line 378
at Raven.Storage.Esent.TransactionalStorage.Batch(Action`1 action) in c:\Builds\raven\Raven.Storage.Esent\TransactionalStorage.cs:line 341
at Raven.Database.DocumentDatabase.Query(String index, IndexQuery query) in c:\Builds\raven\Raven.Database\DocumentDatabase.cs:line 652
at Raven.Database.Server.Responders.Index.PerformQueryAgainstExistingIndex(IHttpContext context, String index, IndexQuery indexQuery, Guid& indexEtag) in c:\Builds\raven\Raven.Database\Server\Responders\Index.cs:line 150
at Raven.Database.Server.Responders.Index.ExecuteQuery(IHttpContext context, String index, Guid& indexEtag) in c:\Builds\raven\Raven.Database\Server\Responders\Index.cs:line 136
at Raven.Database.Server.Responders.Index.GetIndexQueryRessult(IHttpContext context, String index) in c:\Builds\raven\Raven.Database\Server\Responders\Index.cs:line 92
at Raven.Database.Server.Responders.Index.OnGet(IHttpContext context, String index) in c:\Builds\raven\Raven.Database\Server\Responders\Index.cs:line 84
at Raven.Database.Server.Responders.Index.Respond(IHttpContext context) in c:\Builds\raven\Raven.Database\Server\Responders\Index.cs:line 46
at Raven.Http.HttpServer.DispatchRequest(IHttpContext ctx) in c:\Builds\raven\Raven.Http\HttpServer.cs:line 399
at Raven.Http.HttpServer.HandleActualRequest(IHttpContext ctx) in c:\Builds\raven\Raven.Http\HttpServer.cs:line 222"
什么离奇的是,当我尝试查询的StudentCount或它的工作原理CourseCount场......我已经试过在学校加入分析仪.SchoolId字段,但似乎并没有帮助...我也尝试弄平结果文件,并得到同样的错误。我错过了什么吗?
因此,RavenDB中是否有任何选项可以同时过滤存储在嵌套集合中的复杂对象的多个属性,而无需扇出索引?我描述我的情况[这里](http://stackoverflow.com/questions/42030294/ravendb-indexing-and-querying-complex-hierarhical-data-nested-properties),请协助,如果可以的话。 –