如何安装和设置RavenDb索引复制

pen*_*eri 5 replication ravendb

我已经看过问题,甚至是RavenDb文档.在RavenDb索引复制文档中有一点但是似乎没有关于如何/何时/何处创建IndexReplicationDestination的指导

我们的用例非常简单(它是一个尖峰).我们目前创建新对象(Cows)并将它们存储在Raven中.我们使用LINQ动态创建了几个查询(例如from c in session.Query<Cows> select c).

现在我看不出应该在哪里定义要复制的索引.有任何想法吗?我已经得到了束保持并把它添加到服务器目录(我假设它应该在RavenDB.1.0.499\server\Plugins哪里RavenDB.1.0.499\server包含Raven.Server.exe)

编辑:谢谢Ayende ......以下答案和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);
    }
}
Run Code Online (Sandbox Code Playgroud)

HTTP API(在工作室中):// Cows/List docs.Cows .Select(q => new {Status = q.Status})

c)创建复制文档.这里的线索是文件.就像存储的所有内容一样,它也是一个文档.所以创建之后必须存储在Db中:

var replicationDocument = new Raven.Bundles.IndexReplication.Data.IndexReplicationDestination {Id ="Raven/IndexReplication/Cows_List",ColumnsMapping = {{"Status","Status"}},ConnectionStringName ="Reports",PrimaryKeyColumnName ="Id", TableName ="cowSummaries"}; session.Store(replicationDocument); sesson.SaveChanges();

d)确保您在CLIENT中有以下内容(例如MVC应用程序或控制台)

e)创建RDBMS模式.我在'cowReports'中有一个表:

CREATE TABLE [dbo].[cowSummaries]([Id] nvarchar NULL,[Status] nchar NULL)

我的特殊问题是没有将索引文档添加到商店.我知道.facepalm.当然一切都是文件.奇迹般有效!

Aye*_*ien 1

您需要定义两件事。a) 将文档转换为行形状的索引。b) 告诉 RavenDB 连接字符串名称、表名称和要映射的列是什么的文档