2011-09-14 10 views
2

RavenDB에 문서 모음이 있습니다. 정의 :사용자 정의 필드 이름이있는 RavenDB 쿼리 색인

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

class Tag 
{ 
    string Value; 
} 

그리고 내가 가지고있는 인덱스 : 내가

Session.Query<Message>(indexName).Where(m=>m.TagsValue==tagValue) 
를 사용 할 수없는 이유는 다음과 같습니다

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

우리가 클래스 메시지의 일부가 아닌 이름 TagsValue 필드를 가지고, 그건

TagValue를 통해 .NET에서이 인덱스를 쿼리하는 방법은 무엇입니까? Advanced.LuceneQuery를 사용해야합니까?

답변

2

Linq를 사용하기 때문에이를 쿼리하기 위해 해당 속성이있는 유형을 만들거나 Lucene API를 사용할 수 있습니다.

정적 인덱스를 사용하는 쿼리를 실제로 만들 필요는 없으며 동적 인덱스와 순수 linq를 사용하여 쿼리를 수행 할 수 있습니다.

관련 문제