gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 21:49:16 28 4
gpt4 key购买 nike

rI 已经看过问题,确实看过 RavenDb 文档。有一点在RavenDb Index Replication Docs但似乎没有关于如何/何时/在何处创建 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 组中的答案有所帮助。有一个捂脸的时刻。不管这里有一些细节可以帮助别人。这真的很容易,而且确实“有效”:

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 = "Reports", PrimaryKeyColumnName = "Id",
TableName = "cowSummaries"
};
session.Store(replicationDocument);
sesson.SaveChanges();

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

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

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

我的特殊问题是没有将索引文档添加到存储中。我知道。脸掌。当然,一切都是文件。奇迹般有效!

最佳答案

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

关于replication - 如何安装和设置 RavenDb 索引复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7998384/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com