¿Cómo instalo y configuro la replicación del índice RavenDb

r He examinado las preguntas y, de hecho, los documentos de RavenDb. Hay un poco enRavenDb Docs de replicación de índice pero no parece haber ninguna guía sobre cómo / cuándo / dónde crear IndexReplicationDestination

Nuestro caso de uso es muy simple (es un pico). Actualmente creamos nuevos objetos (vacas) y los almacenamos en Raven. Tenemos un par de consultas creadas dinámicamente usando LINQ (por ejemplo,from c in session.Query<Cows> select c).

Ahora no puedo ver dónde debo definir el índice para replicar. ¿Algunas ideas? Tengo el paquete y lo agregué al directorio del servidor (supongo que debería estar enRavenDB.1.0.499\server\Plugins dóndeRavenDB.1.0.499\server contiene Raven.Server.exe)

Edita: Gracias Ayende ... la respuesta a continuación y en los grupos ravendb ayudó. Hubo un facepalm momento. Independientemente, aquí hay algunos detalles que pueden ayudar a alguien más. Realmente es muy fácil y de hecho 'simplemente funciona':

a) Asegúrese de que los complementos se están recogiendo. Puede verlos en las estadísticas, disponibles a través de / localhost: 8080 / stats url (asumiendo la configuración predeterminada). Debería ver entradas en 'Extensiones' con respecto al paquete IndexReplication.

Si no está presente, asegúrese de que las versiones de las DLL (paquete y servidor) sean las mismas

b) Asegúrese de que se haya creado el índice que desea replicar. Se pueden crear a través de la API del cliente o la API HTTP.

API del 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);
    }
}

HTTP API (en estudio): // Cows / List docs.Cows .Select (q => new {Status = q.Status})

c) crea el documento de replicación. La pista aquí es DOCUMENTO. Como todo lo almacenado, también es un documento. Entonces, después de crearlo, debe almacenarse en el 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) Asegúrese de tener lo siguiente en el CLIENTE (por ejemplo, aplicación o consola MVC)

e) Cree el esquema RDBMS. Tengo una tabla en 'cowReports':

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

Mi problema particular no era agregar el documento de índice a la tienda. Lo sé. @ facepalm. Por supuestotod es un documento. ¡Funciona de maravilla

Respuestas a la pregunta(1)

Su respuesta a la pregunta