Como instalar e configurar a replicação do índice RavenDb
Eu olhei para as perguntas e, de fato, para os documentos do RavenDb. Há um pouco emocumentos da Replicação de Índice @RavenDb, mas não parece haver nenhuma orientação sobre como / quando / onde criar o IndexReplicationDestination
Nosso caso de uso é muito simples (é um pico). Atualmente, criamos novos objetos (vacas) e os armazenamos no Raven. Temos algumas consultas criadas dinamicamente usando LINQ (por exemplo,from c in session.Query<Cows> select c
).
Agora não consigo ver onde devo definir o índice para replicar. Alguma ideia? Eu peguei o pacote e o adicionei ao diretório do servidor (suponho que ele deva estar emRavenDB.1.0.499\server\Plugins
OndeRavenDB.1.0.499\server
contém Raven.Server.exe)
Edita: Obrigado Ayende ... a resposta abaixo e nos grupos ravendb ajudaram. Havia um facepalm momento. Independentemente, aqui estão alguns detalhes que podem ajudar alguém. É realmente muito fácil e, de fato, 'simplesmente funciona':
a) Verifique se os plugins estão sendo retirados. Você pode visualizá-las nas estatísticas - disponíveis no URL / localhost: 8080 / stats (assumindo as configurações padrão). Você deverá ver entradas em 'Extensões' relacionadas ao pacote IndexReplicatio
Se não estiver presente, verifique se as versões das DLLs (pacote e servidor) são as mesmas
b) Verifique se o índice que você deseja replicar foi criado. Eles podem ser criados via API do cliente ou API HTTP.
API do cliente:
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);
}
}
PI @HTTP (em estúdio): // Vacas / List docs.Cows .Select (q => new {Status = q.Status})
c) crie o documento de replicação. A pista aqui é DOCUMENT. Como tudo armazenado, também é um documento. Portanto, após a criação, ele deve ser armazenado no Db:
var replicationDocument = new Raven.Bundles.IndexReplication.Data.IndexReplicationDestination {Id = "Raven / IndexReplication / Cows_List", ColumnsMapping = {{"Status", "Status"}}, ConnectionStringName = "Relatórios", PrimaryKeyColumnName = "Id" , TableName = "cowSummaries"}; session.Store (replicationDocument); sesson.SaveChanges ();
d) Verifique se você possui o seguinte no CLIENT (por exemplo, aplicativo MVC ou console)
e) Crie o esquema RDBMS. Eu tenho uma tabela em 'cowReports':
CREATE TABLE [dbo]. [CowSummaries] ([Id] nvarchar NULL, [Status] nchar NULL)
Meu problema específico não foi adicionar o documento de índice à loja. Eu sei. facepalm. Clarotud é um documento. Funciona como um encanto