www tutorial started que org instalar español elastic elasticsearch indexing nest reindex

tutorial - Reindexación utilizando NEST V5.4-ElasticSearch



que es kibana (1)

Después de buscar durante 2 largos días, descubrí la solución para reindexar un índice. Para resolver problemas futuros, proporcionaré mi solución.

Versión Nest - 5.4

var reindex = client.Reindex<object>(r => r .BackPressureFactor(10) // ScrollAll - Scroll all the documents of the index and store it for 1minute .ScrollAll("1m", 2, s => s .Search(ss => ss .Index(oldIndexName) .AllTypes()) // there needs to be some degree of parallelism for this to work .MaxDegreeOfParallelism(4)) .CreateIndex(c => c // New index here .Index(newIndexName) .Settings( // settings goes here) .Mappings( // mappings goes here)) .BulkAll(b => b // New index here! .Index(newIndexName) .Size(100) .MaxDegreeOfParallelism(2) .RefreshOnCompleted()));

el método ReIndex devuelve un IObservable frío al que tiene que llamar .Subscribe () para iniciar todo.

Por lo tanto, debe agregarlo a su código:

var o = new ReindexObserver( onError: (e) => { //do something }, onCompleted: () => { //do something }); reindex.Subscribe(o);

Enlaces útiles para verificar esto son:

Documentación

Número 2660 en GitHub

Número 2771 en GitHub

Soy bastante nuevo en ElasticSearch. Estoy tratando de reindexar un índice para cambiarle el nombre. Estoy usando NEST API v5.4. Vi este ejemplo:

var reindex = elasticClient.Reindex<Customer>(r => r.FromIndex("customers-v1") .ToIndex("customers-v2") .Query(q => q.MatchAll()) .Scroll("10s") .CreateIndex(i => i.AddMapping<Customer>(m => m.Properties(p => p.String(n => n.Name(name => name.Zipcode).Index(FieldIndexOption.not_analyzed))))));

Fuente : http://thomasardal.com/elasticsearch-migrations-with-c-and-nest/

Sin embargo, no puedo reproducir esto usando NEST 5.4. Creo que eso es para la versión 2.4. Compruebo los cambios de ElasticSearch y trato de reindexar usando esto:

Fuente : https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/nest-breaking-changes.html

public method Nest.ReindexDescriptor..ctor Declaration changed (Breaking) 2.x: public .ctor(IndexName from, IndexName to) 5.x: public .ctor() var reindex = new client.Reindex(oldIndexName, newIndexName);

Pero esto tampoco funcionó. También busco documentación pero no encontré ningún código en c #, solo fuente JSON: https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-reindex.html )

¿Puede alguien darme un ejemplo de cómo reindexar usando NEST 5.4 en C #?

¡Gracias por adelantado! : slight_smile: