2011-11-03 9 views
5

r質問と実際にRavenDbのドキュメントを見ました。 RavenDb Index Replication Docsには少しありますが、IndexReplicationDestinationを作成する方法と場所/場所についてのガイダンスはありません。RavenDbインデックスの複製をインストールしてセットアップするには

私たちの使用例はとても簡単です(スパイクです)。現在、新しいオブジェクト(牛)を作成してRavenに保存しています。 LINQ(例:from c in session.Query<Cows> select c)を使用して動的に作成された2つのクエリがあります。

今、私はどこで私がインデックスを複製するかを定義する必要があるのか​​分かりません。何か案は?下記のおかげでAyende ...答え:私は(私はそれがRavenDB.1.0.499\serverがRaven.Server.exeが含まれているRavenDB.1.0.499\server\Pluginsにする必要がありますと仮定している)

編集をバンドルのホールドを持って、サーバディレクトリにそれを追加しましたravendbグループで助けられました。 facepalmの瞬間がありました。他の誰かを助けるかもしれないいくつかの細部がここにかかわらず。実際には非常に簡単で実際にはうまくいっています:

a)プラグインが取り出されていることを確認してください。これらは統計情報で見ることができます -/localhost:8080/stats URL(デフォルト設定を前提とします)を介して入手できます。 IndexReplicationバンドルに関する「拡張機能」の項目が表示されます。

複製するインデックスが作成されていることを確認)のDLL(バンドルおよびサーバー)のバージョンが同じ

Bであることを確認を提示していない場合。クライアントAPIまたはHTTP APIを使用して作成できます。

クライアントAPI:

public class Cows_List : AbstractIndexCreationTask<Cow> 
{ 
    public Cows_List() 
    { 
     Map = cows => from c in cows select new { c.Status }; 
     Index(x => x.Status, FieldIndexing.Analyzed); 
    } 
} 

(スタジオ内)のHTTP API: //牛/一覧 docs.Cows .Select(Q =>新しい{ステータス= q.Status})

c)複製文書を作成します。ここの手がかりはDOCUMENTです。保存されたすべてのものと同様、それもドキュメントです。だから、DBに格納する必要があります作成後:

するvar replicationDocumentを=新しいRaven.Bundles.IndexReplication.Data.IndexReplicationDestination { ID = "レイヴン/ IndexReplication/Cows_List"、ColumnsMapping = {{ "ステータス"、 "ステータス "}}、 ConnectionStringName ="レポート "、PrimaryKeyColumnName =" Id "、 TableName =" cowSummaries " }; セッション。ストア(replicationDocument); sesson.SaveChanges();

D)は、クライアントで次の(例えばMVCアプリやコンソールがあることを確認してください)

e)のRDBMSスキーマを作成します。私は 'cowReports' 内のテーブルを持っています。

は(NULL NCHAR、 [状態]を [ID] nvarchar型のNULL)TABLE [dboは] [cowSummaries]をCREATE

私の特定の問題は、インデックス文書を追加していませんでしたストアへ。知っている。 facepalm。もちろんすべてはドキュメントです。魅力的な作品!

答えて

1

2つのことを定義する必要があります。 a)文書を行の形状に変換するインデックス。 b)RavenDBに接続文字列名、テーブル名、およびマッピングする列を教えてくれる文書

+0

ありがとうAyende - これはRavenDbで確立するのが難しい2つの理由の1つです。非常に簡単です) 1)どこで/いつ私はReplicationDocumentを作成しますか?セッションごとに1回ですか?またはアプリですか?私はアプリだと思います... 2)ASP.Netによるセッション管理(私はIDocumentStoreを挿入したくありません - スタブやモックへの広いインターフェースです) - 私はむしろ会話を持っています(nHiberanteなど)。 – penderi

+0

[OK]セッションがソートされています(私はnHibernate/Monorailと同様のプラクティスを使用しています - HttpContextのセッションを保存しています)。 しかし、私はまだ、いつ/どのようにrteplicationのドキュメントとインデックスを作成するかについては不明です...すべての指導をいただきました。 – penderi

+0

また、私はクエリに動的インデックスを使用しています。どこでレプリケーションの専用インデックスをセットアップしますか?私は同じ場所を想定しています。これはシナリオごとにWebアプリケーションごとに1回ですか(私はapp_startを考えています)? – penderi

関連する問題