【问题标题】:How do I install and setup the RavenDb index replication如何安装和设置 RavenDb 索引复制
【发布时间】:2011-11-03 16:25:06
【问题描述】:

r我已经查看了问题,并且确实查看了 RavenDb 文档。 RavenDb Index Replication Docs 有一点,但似乎没有任何关于如何/何时/在何处创建 IndexReplicationDestination 的指导

我们的用例非常简单(这是一个尖峰)。我们目前创建新对象(牛)并将它们存储在 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);
    }
}

HTTP API(在工作室中): //奶牛/列表 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 = "报告",PrimaryKeyColumnName = "Id", TableName = "cowSummaries" }; session.Store(replicationDocument); 会话.SaveChanges();

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

e) 创建 RDBMS 模式。我在“cowReports”中有一张表格:

创建表 [dbo].[cowSummaries]( [Id] nvarchar NULL, [状态] nchar NULL)

我的特殊问题是没有将索引文档添加到存储中。我知道。 掌心。当然一切都是文档。像魅力一样工作!

【问题讨论】:

    标签: replication ravendb


    【解决方案1】:

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

    【讨论】:

    • 谢谢 Ayende - 这是我发现用 RavenDb 建立起来很棘手的两件事之一(其余的非常简单)1)我在哪里/何时创建 ReplicationDocument,每次会话一次?或应用程序?我猜应用程序... 2) 使用 ASP.Net 进行会话管理(我不想注入 IDocumentStore - 它是 Stub 或 Mock 的广泛接口) - 我宁愿进行对话(如 nHiberante)。
    • 好的,会话已排序(我正在使用与 nHibernate/Monorail 类似的做法 - 在 HttpContext 中存储会话)。但恐怕我仍然不清楚何时/如何创建 rteplication 文档和索引......任何指导表示赞赏。
    • 另外......我正在使用动态索引进行查询。我将在哪里为复制设置专用索引?我假设同一个地方。这是每个场景一次的 webapp(我在想 app_start)吗?
    • 好的,所以复制/目标 40-4 是标准的 -> 我没有复制到另一个 RavenDb 实例。 IndexReplication 没有输出 - 我怎样才能知道发生了什么...
    猜你喜欢
    • 1970-01-01
    • 2013-02-14
    • 1970-01-01
    • 2021-10-27
    • 1970-01-01
    • 2019-09-16
    • 2013-04-06
    • 2015-07-04
    • 1970-01-01
    相关资源
    最近更新 更多