1

あるインデックスを別のインデックスのベースとして使用することはできますか?

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

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

これは可能ですか、それとも他のインデックスのコードを複製するまったく新しいインデックスを作成する必要がありますか? もし不可能なら、なぜですか?

4

2 に答える 2

3

いいえ、これと引き換えに最小限の価値を実装するのは非常に複雑であるため、それを行うことはできません。

次の理由により、これを実装するのは複雑です。 - 最初のインデックスに変更があった場合、2 番目のインデックスで通知する必要があります。- どのようにトランザクションを実装しますか?

そして、おそらくもっとあります。インデックス間の信頼性により、解決すべき非常に複雑な問題が発生するため、インデックスは 2 つだけにすることをお勧めします。

あなたのシナリオでこれが意味をなさない場合は、間違った方法で何かをしている可能性があります。たとえば、BlogPostsOrderedByCreated インデックスと BlogSelection インデックスを作成する必要はなく、両方を行う linq クエリを使用するだけです。

session.Query<Post>()
       .Where(x => x.Name == "Blog selection")
       .OrderBy(x => x.CreatedDate)
       .ToList();
于 2012-04-18T13:03:25.767 に答える
0

私の一般的な理解では、これはクライアント側からは注意が必要です。1日の終わりに、これらのインデックス定義はlinqからオブジェクトに変換され、サーバーに送信されます。上記のlinqが解釈される場合、システム名前空間といくつかのレイヴン固有のものにのみアクセスできます。

このようなシナリオで機能する可能性があるのは、サーバー上のバンドルでインデックスを定義することです。そうすれば、もっと面白いことができます。それがうまくいくかどうかは完全にはわかりませんが、あなたには戦いのチャンスがあると思います。

于 2012-04-18T12:54:52.593 に答える