Как установить и настроить репликацию индекса RavenDb
Я посмотрел на вопросы и действительно документы RavenDb. Там немногоДокументация по репликации индексов RavenDb но нет никаких указаний на то, как / когда / где создать IndexReplicationDestination
Наш вариант использования очень прост (это шип). В настоящее время мы создаем новые объекты (Коровы) и храним их в Вороне. У нас есть пара запросов, создаваемых динамически с использованием LINQ (например,from c in session.Query<Cows> select c
).
Теперь я не вижу, где я должен определить индекс для репликации. Есть идеи? Я взял пакет и добавил его в каталог сервера (я предполагаю, что он должен быть вRavenDB.1.0.499\server\Plugins
гдеRavenDB.1.0.499\server
содержит Raven.Server.exe)
редактироватьСпасибо, Айенде ... Ответ ниже и в группах ravendb помог. БылFacepalm момент. Независимо от того, вот некоторые детали, которые могут помочь кому-то еще. Это действительно очень просто и действительно «просто работает»:
а) Убедитесь, что плагины подобраны. Вы можете просмотреть их в статистике - доступно через / localhost: 8080 / stats url (при условии настроек по умолчанию). Вы должны увидеть записи в «Расширениях», относящиеся к комплекту IndexReplication.
Если нет, убедитесь, что версии DLL (комплект и сервер) совпадают
б) Убедитесь, что индекс, который вы хотите скопировать, был создан. Они могут быть созданы через клиентский 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 (в студии): // Cows / List docs.Cows .Select (q => new {Status = q.Status})
в) создать документ тиражирования. Ключ здесь - ДОКУМЕНТ. Как и все, что хранится, это тоже документ. Поэтому после создания его необходимо сохранить в БД:
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 ();
г) Убедитесь, что у вас есть следующее в клиенте (например, приложение MVC или консоль)
e) Создайте схему RDBMS. У меня есть таблица в «cowReports»:
CREATE TABLE [dbo]. [CowSummaries] ([Id] nvarchar NULL, [Status] nchar NULL)
Моей конкретной проблемой было не добавление индексного документа в магазин. Я знаю.Facepalm, Конечновсе это документ. Работает как шарм!