2011-09-14 60 views
2

我在RavenDB中收集了文档消息。 定义:具有自定义字段名称的RavenDB查询索引

class Message 
{ 
    string Content; 
    Tag[] Tags; 
} 

class Tag 
{ 
    string Value; 
} 

,我有指数:

from doc in docs.Messages 
from docTagsItem in (IEnumerable<dynamic>)doc.Tags 
select new { Content = doc.Content, TagsValue = docTagsItem.Value } 

在这里我们有一个名称TagsValue这是不是类消息的一部分领域,这就是为什么我不能用

Session.Query<Message>(indexName).Where(m=>m.TagsValue==tagValue) 

TagValue如何从.NET中查询此索引?我应该使用Advanced.LuceneQuery?

回答

2

因为您使用Linq,您需要创建一个具有该属性的类型来查询该类型,或者您可以使用Lucene API。

请注意,您实际上不需要使用静态索引进行查询,只需使用动态索引和纯粹的linq就可以做到这一点。