public static ElasticClient CreateEsClient(string host, string indexName) { var uri = new Uri(host); var pool = new Elasticsearch.Net.SingleNodeConnectionPool(uri); var transportsConnectionSettings = new Nest.ConnectionSettings(pool, new Elasticsearch.Net.HttpConnection(), new SerializerFactory((settings, values) => { //settings.Converters.Add(new GeometryConverter()); //settings.Converters.Add(new CoordinateConverter()); })) .DefaultIndex(indexName) .DisableDirectStreaming(); return(new Nest.ElasticClient(transportsConnectionSettings)); }
public DataAccess(ICsvReader csvReader, IConfiguration configuration) { this.csvReader = csvReader; this.configuration = configuration; var uri = new Uri(configuration.GetSection("Elastic").GetSection("Host").Value); var pool = new Elasticsearch.Net.SingleNodeConnectionPool(uri); var transportsConnectionSettings = new Nest.ConnectionSettings(pool, new Elasticsearch.Net.HttpConnection(), new SerializerFactory((settings, values) => { //settings.Converters.Add(new GeometryConverter()); //settings.Converters.Add(new CoordinateConverter()); })) .DefaultIndex(configuration.GetSection("Elastic").GetSection("Index").Value) .DisableDirectStreaming(); airportElasticClient = new Nest.ElasticClient(transportsConnectionSettings); }
static public List<string> getMessages(long channelIDs) { List<string> messages = new List<string>(); Uri Server_ = new Uri("http://192.168.30.106:8200/"); var pool_DataReader = new Elasticsearch.Net.SingleNodeConnectionPool(Server_); CultureInfo.CurrentCulture = CultureInfo.InvariantCulture; int month = DateTime.Now.Month; int previousMonth = DateTime.Now.AddMonths(-1).Month; string index = $"telegramcrw-{DateTime.Now.Year}-{month.ToString("##")}"; Nest.ConnectionSettings connectionSettings_DataReader = new Nest.ConnectionSettings(pool_DataReader).DefaultIndex(index); var client_DataReader = new Nest.ElasticClient(connectionSettings_DataReader); string minDate = DateTime.Now.AddDays(-10).ToString("yyyy-MM-dd HH:mm:ss" + ".000"); var result = client_DataReader.Search<telegramcrw_message>(s => s .Type("message") .MatchAll() //.From(0) .Size(100) .Query(q => q .DateRange(r => r .Field(f => f.createDate) .GreaterThanOrEquals(minDate) //.LessThan("2018-12-20 19:05:00.000") ) // Added without any debug && q.Term("language", "102097") && q.Term("fK_ChannelId", channelIDs) ) //.Scroll("5m") //.SearchType(Elasticsearch.Net.SearchType.QueryThenFetch) .Sort(w => w.Ascending(f => f.createDate)) ); for (int j = 0; j < result.Documents.Count; j++) messages.Add(result.Documents.ElementAt(j).messageTextCleaned); return messages; }
public static IElasticClient ConfigureElastic() { Logger.Info("Setting up Elastic"); var connectionString = ConfigurationManager.ConnectionStrings["Elastic"]; if (connectionString == null) { throw new ArgumentException("No elastic connection string found"); } var data = connectionString.ConnectionString.Split(';'); var url = data.FirstOrDefault(x => x.StartsWith("Url", StringComparison.CurrentCultureIgnoreCase)); if (url == null) { throw new ArgumentException("No URL parameter in elastic connection string"); } var index = data.FirstOrDefault(x => x.StartsWith("DefaultIndex", StringComparison.CurrentCultureIgnoreCase)); if (string.IsNullOrEmpty(index)) { throw new ArgumentException("No DefaultIndex parameter in elastic connection string"); } index = index.Substring(13); var node = new Uri(url.Substring(4)); var pool = new Elasticsearch.Net.SingleNodeConnectionPool(node); var regex = new Regex("([+\\-!\\(\\){}\\[\\]^\"~*?:\\\\\\/>< ]|[&\\|]{2}|AND|OR|NOT)", RegexOptions.Compiled); var settings = new Nest.ConnectionSettings(pool, (_) => new JsonNetSerializer(_)) .DefaultIndex(index) .DefaultTypeNameInferrer(type => type.FullName .Replace("Pulse.Presentation.ServiceStack.", "") .Replace("Pulse.Application.Elastic.", "") .Replace('.', '_') ) .DefaultFieldNameInferrer(field => regex.Replace(field, "")); #if DEBUG settings = settings.DisableDirectStreaming(); #endif var client = new ElasticClient(settings); if (!client.IndexExists(index).Exists) { client.CreateIndex(index, i => i .Settings(s => s .NumberOfShards(8) .NumberOfReplicas(0) .Analysis(analysis => analysis .TokenFilters(f => f.NGram("ngram", d => d.MinGram(1).MaxGram(15))) .Analyzers(a => a .Custom("default_index", t => t.Tokenizer("keyword").Filters(new[] { "standard", "lowercase", "asciifolding", "kstem", "ngram" })) .Custom("suffix", t => t.Tokenizer("keyword").Filters(new[] { "standard", "lowercase", "asciifolding", "reverse" })) ) ))); } return(client); }
public static IElasticClient ConfigureElastic() { Logger.Info("Setting up Elastic"); var connectionString = ConfigurationManager.ConnectionStrings["Elastic"]; if (connectionString == null) throw new ArgumentException("No elastic connection string found"); var data = connectionString.ConnectionString.Split(';'); var url = data.FirstOrDefault(x => x.StartsWith("Url", StringComparison.CurrentCultureIgnoreCase)); if (url == null) throw new ArgumentException("No URL parameter in elastic connection string"); var index = data.FirstOrDefault(x => x.StartsWith("DefaultIndex", StringComparison.CurrentCultureIgnoreCase)); if (string.IsNullOrEmpty(index)) throw new ArgumentException("No DefaultIndex parameter in elastic connection string"); index = index.Substring(13); var node = new Uri(url.Substring(4)); var pool = new Elasticsearch.Net.SingleNodeConnectionPool(node); var regex = new Regex("([+\\-!\\(\\){}\\[\\]^\"~*?:\\\\\\/>< ]|[&\\|]{2}|AND|OR|NOT)", RegexOptions.Compiled); var settings = new Nest.ConnectionSettings(pool, (_) => new JsonNetSerializer(_)) .DefaultIndex(index) .DefaultTypeNameInferrer(type => type.FullName .Replace("Pulse.Presentation.ServiceStack.", "") .Replace("Pulse.Application.Elastic.", "") .Replace('.', '_') ) .DefaultFieldNameInferrer(field => regex.Replace(field, "")); #if DEBUG settings = settings.DisableDirectStreaming(); #endif var client = new ElasticClient(settings); if (!client.IndexExists(index).Exists) client.CreateIndex(index, i => i .Settings(s => s .NumberOfShards(8) .NumberOfReplicas(0) .Analysis(analysis => analysis .TokenFilters(f => f.NGram("ngram", d => d.MinGram(1).MaxGram(15))) .Analyzers(a => a .Custom("default_index", t => t.Tokenizer("keyword").Filters(new[] { "standard", "lowercase", "asciifolding", "kstem", "ngram" })) .Custom("suffix", t => t.Tokenizer("keyword").Filters(new[] { "standard", "lowercase", "asciifolding", "reverse" })) ) ))); return client; }