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:
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: