Skip to content

Instantly share code, notes, and snippets.

@oguzhaneren
Forked from ThomasArdal/Customer.cs
Created August 18, 2016 11:47
Show Gist options
  • Save oguzhaneren/4a066c8e58bf1b784f2cf2558a842f2c to your computer and use it in GitHub Desktop.
Save oguzhaneren/4a066c8e58bf1b784f2cf2558a842f2c to your computer and use it in GitHub Desktop.
Elasticsearch migration c# example
namespace ConsoleApplication1
{
public class Customer
{
public int Zipcode { get; set; }
}
}
using System;
using Nest;
namespace ConsoleApplication1
{
public class Program
{
public static void Main(string[] args)
{
var connectionSettings = new ConnectionSettings(new Uri("http://localhost:9200/"));
connectionSettings.SetDefaultIndex("customers");
var elasticClient = new ElasticClient(connectionSettings);
elasticClient.CreateIndex("customers-v1");
elasticClient.Alias(x => x.Add(a => a.Alias("customers").Index("customers-v1")));
elasticClient.Map<Customer>(d =>
d.Properties(p => p.Number(n => n.Name(name => name.Zipcode).Index(NonStringIndexOption.not_analyzed))));
elasticClient.Index(new Customer { Zipcode = 8000 });
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))))));
var o = new ReindexObserver<Customer>(onError: e => { });
reindex.Subscribe(o);
elasticClient.DeleteIndex(d => d.Index("customers-v1"));
elasticClient.Alias(x => x.Add(a => a.Alias("customers").Index("customers-v2")));
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment