RavenDB索引失败

时间:2012-02-17 14:26:47

标签: ravendb

我们有一个Salespoint类,它包含在RavenDB的SalespointDocument中。当我尝试创建以下索引时:

 public class GroupInfoIndex: AbstractIndexCreationTask<SalespointDocument, SalespointGroupTimestampTuple>
{
    public GroupInfoIndex()
    {
       Map = salespoints => from s in salespoints
         select new
          {
           SalespointId = s.Salespoint.SalespointSimplePropertiesData.SalespointId,
           DistributorId = s.Salespoint.SalespointSimplePropertiesData.DistributorId,
           AgentId = s.Salespoint.SalespointSimplePropertiesData.AgentId,
           Timestamp = s.TimeStamp
          };
    }
}

并如此查询:

myDocumentSession.Query<SalespointGroupTimestampTuple>("GroupInfoIndex").ToList()

我从来没有得到任何数据。

当我查看RavenDB silverlight客户端时,我发现查询是这样保存的:

docs.SalespointDocuments     .Select(s =&gt; new {SalespointId = s.Salespoint.SalespointSimplePropertiesData.SalespointId,DistributorId = s.Salespoint.SalespointSimplePropertiesData.DistributorId,AgentId = s.Salespoint.SalespointSimplePropertiesData.AgentId,Timestamp = s.TimeStamp})

但是当我尝试在RavenDB silverlight客户端中执行查询时,出现以下错误:


Lucene.Net.QueryParsers.ParseException:无法解析&#39; docs.SalespointDocuments     .Select(s =&gt; new {SalespointId = s.Salespoint.SalespointSimplePropertiesData.SalespointId,DistributorId = s.Salespoint.SalespointSimplePropertiesData.DistributorId,AgentId = s.Salespoint.SalespointSimplePropertiesData.AgentId,Timestamp = s.TimeStamp})&#39; :遭遇&#34; &#34; s.Salespoint.SalespointSimplePropertiesData.SalespointId,&#34;&#34;在第1栏第60栏。 期待:     &#34;}&#34; ...      ---&GT; Lucene.Net.QueryParsers.ParseException:遇到&#34; &#34; s.Salespoint.SalespointSimplePropertiesData.SalespointId,&#34;&#34;在第1栏第60栏。 期待:     &#34;}&#34; ...

在z:\ Libs \ lucene.net \ src \ core \ QueryParser \ QueryParser.cs中的Lucene.Net.QueryParsers.QueryParser.Jj_consume_token(Int32类):第2130行    在z:\ Libs \ lucene.net \ src \ core \ QueryParser \ QueryParser.cs中的Lucene.Net.QueryParsers.QueryParser.Term(字符串字段):第1884行    在z:\ Libs \ lucene.net \ src \ core \ QueryParser \ QueryParser.cs中的Lucene.Net.QueryParsers.QueryParser.Clause(字符串字段):第1588行    在z:\ Libs \ lucene.net \ src \ core \ QueryParser \ QueryParser.cs中的Lucene.Net.QueryParsers.QueryParser.Query(字符串字段):第1524行    位于z:\ Libs \ lucene.net \ src \ core \ QueryParser \ QueryParser.cs中的Lucene.Net.QueryParsers.QueryParser.Clause(字符串字段):第1593行    在z:\ Libs \ lucene.net \ src \ core \ QueryParser \ QueryParser.cs中的Lucene.Net.QueryParsers.QueryParser.Query(字符串字段):第1524行    在z:\ Libs \ lucene.net \ src \ core \ QueryParser \ QueryParser.cs中的Lucene.Net.QueryParsers.QueryParser.Parse(字符串查询):第232行    ---内部异常堆栈跟踪结束---    在z:\ Libs \ lucene.net \ src \ core \ QueryParser \ QueryParser.cs中的Lucene.Net.QueryParsers.QueryParser.Parse(字符串查询):第250行    在Raven.Database.Indexing.QueryBuilder.BuildQuery(String query,PerFieldAnalyzerWrapper analyzer)中的c:\ Builds \ raven \ Raven.Database \ Indexing \ QueryBuilder.cs:第30行    at Raven.Database.Indexing.Index.IndexQueryOperation.GetLuceneQuery()in c:\ Builds \ raven \ Raven.Database \ Indexing \ Index.cs:line 723    at Raven.Database.Indexing.Index.IndexQueryOperation.d_ 24.MoveNext()in c:\ Builds \ raven \ Raven.Database \ Indexing \ Index.cs:line 581    在System.Linq.Enumerable.WhereSelectEnumerableIterator 2.MoveNext() at System.Linq.Enumerable.WhereSelectEnumerableIterator 2.MoveNext()    在System.Collections.Generic.List 1.InsertRange(Int32 index, IEnumerable 1个集合)    在Raven.Database.DocumentDatabase。&lt;&gt; c _DisplayClass72.b__6a(IStorageActionsAccessor actions)中的c:\ Builds \ raven \ Raven.Database \ DocumentDatabase.cs:第762行    at Raven.Storage.Esent.TransactionalStorage.ExecuteBatch(Action 1 action) in c:\Builds\raven\Raven.Storage.Esent\TransactionalStorage.cs:line 379 at Raven.Storage.Esent.TransactionalStorage.Batch(Action 1 action)in c:\ Builds \ raven \ Raven.Storage.Esent \ TransactionalStorage.cs:line 340    在Raven.Database.DocumentDatabase.Query(String index,IndexQuery query)中的c:\ Builds \ raven \ Raven.Database \ DocumentDatabase.cs:第707行    在Raven.Database.Server.Responders.Index.PerformQueryAgainstExistingIndex(IHttpContext context,String index,IndexQuery indexQuery,Guid&amp; indexEtag)中的c:\ Builds \ raven \ Raven.Database \ Server \ Responders \ Index.cs:第178行    位于c:\ Builds \ raven \ Raven.Database \ Server \ Responders \ Index.cs中的Raven.Database.Server.Responders.Index.ExecuteQuery(IHttpContext context,String index,Guid&amp; indexEtag):第164行    位于c:\ Builds \ raven \ Raven.Database \ Server \ Responders \ Index.cs中的Raven.Database.Server.Responders.Index.GetIndexQueryRessult(IHttpContext context,String index):第120行    位于c:\ Builds \ raven \ Raven.Database \ Server \ Responders \ Index.cs中的Raven.Database.Server.Responders.Index.OnGet(IHttpContext context,String index):第94行    位于c:\ Builds \ raven \ Raven.Database \ Server \ Responders \ Index.cs中的Raven.Database.Server.Responders.Index.Respond(IHttpContext context):第46行    位于c:\ Builds \ raven \ Raven.Database \ Server \ HttpServer.cs中的Raven.Database.Server.HttpServer.DispatchRequest(IHttpContext ctx):第477行    位于c:\ Builds \ raven \ Raven.Database \ Server \ HttpServer.cs中的Raven.Database.Server.HttpServer.HandleActualRequest(IHttpContext ctx):第259行

System.Net.WebException:Lucene.Net.QueryParsers.ParseException:无法解析&#39; docs.SalespointDocuments     .Select(s =&gt; new {SalespointId = s.Salespoint.SalespointSimplePropertiesData.SalespointId,DistributorId = s.Salespoint.SalespointSimplePropertiesData.DistributorId,AgentId = s.Salespoint.SalespointSimplePropertiesData.AgentId,Timestamp = s.TimeStamp})&#39; :遭遇&#34; &#34; s.Salespoint.SalespointSimplePropertiesData.SalespointId,&#34;&#34;在第1栏第60栏。 期待:     &#34;}&#34; ...      ---&GT; Lucene.Net.QueryParsers.ParseException:遇到&#34; &#34; s.Salespoint.SalespointSimplePropertiesData.SalespointId,&#34;&#34;在第1栏第60栏。 期待:     &#34;}&#34; ...

在z:\ Libs \ lucene.net \ src \ core \ QueryParser \ QueryParser.cs中的Lucene.Net.QueryParsers.QueryParser.Jj_consume_token(Int32类):第2130行    在z:\ Libs \ lucene.net \ src \ core \ QueryParser \ QueryParser.cs中的Lucene.Net.QueryParsers.QueryParser.Term(字符串字段):第1884行    在z:\ Libs \ lucene.net \ src \ core \ QueryParser \ QueryParser.cs中的Lucene.Net.QueryParsers.QueryParser.Clause(字符串字段):第1588行    在z:\ Libs \ lucene.net \ src \ core \ QueryParser \ QueryParser.cs中的Lucene.Net.QueryParsers.QueryParser.Query(字符串字段):第1524行    位于z:\ Libs \ lucene.net \ src \ core \ QueryParser \ QueryParser.cs中的Lucene.Net.QueryParsers.QueryParser.Clause(字符串字段):第1593行    在z:\ Libs \ lucene.net \ src \ core \ QueryParser \ QueryParser.cs中的Lucene.Net.QueryParsers.QueryParser.Query(字符串字段):第1524行    在z:\ Libs \ lucene.net \ src \ core \ QueryParser \ QueryParser.cs中的Lucene.Net.QueryParsers.QueryParser.Parse(字符串查询):第232行    ---内部异常堆栈跟踪结束---    在z:\ Libs \ lucene.net \ src \ core \ QueryParser \ QueryParser.cs中的Lucene.Net.QueryParsers.QueryParser.Parse(字符串查询):第250行    在Raven.Database.Indexing.QueryBuilder.BuildQuery(String query,PerFieldAnalyzerWrapper analyzer)中的c:\ Builds \ raven \ Raven.Database \ Indexing \ QueryBuilder.cs:第30行    at Raven.Database.Indexing.Index.IndexQueryOperation.GetLuceneQuery()in c:\ Builds \ raven \ Raven.Database \ Indexing \ Index.cs:line 723    at Raven.Database.Indexing.Index.IndexQueryOperation.d_ 24.MoveNext()in c:\ Builds \ raven \ Raven.Database \ Indexing \ Index.cs:line 581    在System.Linq.Enumerable.WhereSelectEnumerableIterator 2.MoveNext() at System.Linq.Enumerable.WhereSelectEnumerableIterator 2.MoveNext()    在System.Collections.Generic.List 1.InsertRange(Int32 index, IEnumerable 1个集合)    在Raven.Database.DocumentDatabase。&lt;&gt; c _DisplayClass72.b_ 6a(IStorageActionsAccessor actions)c:\ Builds \ raven \ Raven.Database \ DocumentDatabase.cs:line 762    at Raven.Storage.Esent.TransactionalStorage.ExecuteBatch(Action 1 action) in c:\Builds\raven\Raven.Storage.Esent\TransactionalStorage.cs:line 379 at Raven.Storage.Esent.TransactionalStorage.Batch(Action 1 action)in c:\ Builds \ raven \ Raven.Storage.Esent \ TransactionalStorage.cs:line 340    在Raven.Database.DocumentDatabase.Query(String index,IndexQuery query)中的c:\ Builds \ raven \ Raven.Database \ DocumentDatabase.cs:第707行    在Raven.Database.Server.Responders.Index.PerformQueryAgainstExistingIndex(IHttpContext context,String index,IndexQuery indexQuery,Guid&amp; indexEtag)中的c:\ Builds \ raven \ Raven.Database \ Server \ Responders \ Index.cs:第178行    位于c:\ Builds \ raven \ Raven.Database \ Server \ Responders \ Index.cs中的Raven.Database.Server.Responders.Index.ExecuteQuery(IHttpContext context,String index,Guid&amp; indexEtag):第164行    位于c:\ Builds \ raven \ Raven.Database \ Server \ Responders \ Index.cs中的Raven.Database.Server.Responders.Index.GetIndexQueryRessult(IHttpContext context,String index):第120行    位于c:\ Builds \ raven \ Raven.Database \ Server \ Responders \ Index.cs中的Raven.Database.Server.Responders.Index.OnGet(IHttpContext context,String index):第94行    位于c:\ Builds \ raven \ Raven.Database \ Server \ Responders \ Index.cs中的Raven.Database.Server.Responders.Index.Respond(IHttpContext context):第46行    位于c:\ Builds \ raven \ Raven.Database \ Server \ HttpServer.cs中的Raven.Database.Server.HttpServer.DispatchRequest(IHttpContext ctx):第477行    位于c:\ Builds \ raven \ Raven.Database \ Server \ HttpServer.cs中的Raven.Database.Server.HttpServer.HandleActualRequest(IHttpContext ctx):第259行    在Raven.Client.Silverlight.Connection.Async.AsyncServerClient.HandleException(WebException e)    在Raven.Client.Silverlight.Connection.Async.AsyncServerClient.AttemptToProcessResponse [T](Func 1 process) at Raven.Client.Silverlight.Connection.Async.AsyncServerClient.<>c__DisplayClass2a.<QueryAsync>b__27(Task 1任务)    在System.Threading.Tasks.Task 1.<>c__DisplayClass1a 1.b _19()    在System.Threading.Tasks.Task`1.InvokeFuture(Object futureAsObj)    在System.Threading.Tasks.Task.InnerInvoke()    在System.Threading.Tasks.Task.Execute()

Inner StackTrace:    在Raven.Studio.Infrastructure.InvocationExtensions.Catch(任务父,Action`1动作)    在Raven.Studio.Features.Query.ExecuteQueryCommand.GetFetchDocumentsMethod(DocumentsModel documentsModel)    在Raven.Studio.Models.DocumentsModel.TimerTickedAsync()    在Raven.Studio.Infrastructure.Model.TimerTicked()    在Raven.Studio.Infrastructure.Model.ForceTimerTicked()    在Raven.Studio.Features.Query.ExecuteQueryCommand.Execute(Object _)    在Raven.Studio.Models.QueryModel.RestoreHistory()    在Raven.Studio.Models.QueryModel.set_IndexName(String value)    在Raven.Studio.Models.QueryModel.LoadModelParameters(String parameters)    在Raven.Studio.Infrastructure.ViewModel.LoadModel(字符串状态)    在Raven.Studio.Infrastructure.ModelAttacher。&lt;&gt; c_ DisplayClass1.b _0(Object sender,RoutedEventArgs eventArgs)    在MS.Internal.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex,Delegate handlerDelegate,Object sender,Object args)

at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj,IntPtr unmanagedObjArgs,Int32 argsTypeIndex,Int32 actualArgsTypeIndex,String eventName)

有什么问题?

0 个答案:

没有答案