2012-04-18 6 views
1

하나의 인덱스를 다른 인덱스의베이스로 사용할 수 있습니까?RavenDB : 다른 인덱스에 인덱스 적용

public class BlogPostsOrderedByCreated : AbstractIndexCreationTask<BlogPost, BlogPost> { 
    /* Ordering Blogs after creation-date */ 
} 

// TODO: Implement another index that uses above index 
//public class BlogSelection : 

이렇게해도 될까요 아니면 다른 색인의 코드를 복제하는 완전히 새로운 색인을 만들어야합니까? 가능하지 않다면, 그 이유는 무엇입니까?

답변

3

아니요, 이것을 구현하는 것이 매우 복잡하고 최소한의 값으로 교환 할 수 있기 때문에 그렇게 할 수 없습니다.

때문에 구현하기가 복잡합니다 - 첫 번째 색인에서 변경된 사항이있을 때 두 번째 색인에 알려야합니다. - 어떻게 거래를 구현합니까?

아마 더있을 것입니다. 인덱스 사이에 의존할만한 문제가 발생할 수 있으므로 실제로는 두 가지 인덱스 만 있으면됩니다.

시나리오에서 이것이 의미가 없으면 잘못된 방식으로 뭔가를 수행했을 수 있습니다. 예를 들어 BlogPostsOrderedByCreated 및 BlogSelection 색인을 만들 필요가 없습니다. 두 가지를 모두 수행하는 linq 검색어 만 사용하십시오.

session.Query<Post>() 
     .Where(x => x.Name == "Blog selection") 
     .OrderBy(x => x.CreatedDate) 
     .ToList(); 
0

내 일반적인 이해는 이것이 클라이언트 측에서는 까다로울 것입니다. 하루가 끝날 때 인덱스 정의가 linq로 변환되어 서버로 전송됩니다. Linq가 혼란 스러울 때 System 네임 스페이스 및 몇 가지 까마귀 특정 항목에만 액세스 할 수 있습니다.

이와 같은 시나리오에서 작동 할 수있는 것은 서버의 번들에 인덱스를 정의하는 것입니다. 그러면 훨씬 재미있는 일을 할 수 있습니다. 그것이 작동 할 것이라는 것을 완전히 확신하지는 않지만 나는 당신이 싸울 기회를 가질 것이라고 생각합니다.

관련 문제