public void Can_query_using_single_value() { using (var elasticsearch = new ElasticsearchInside.Elasticsearch()) { var elasticClient = new ElasticClient(new ConnectionSettings(elasticsearch.Url)); var camaro = new Car { Name = "Camaro" }; var corvette = new Car { Name = "Corvette" }; var monteCarlo = new Car { Name = "Monte Carlo" }; elasticClient.Index(camaro, x => x.Index("vehicles")); elasticClient.Index(corvette, x => x.Index("vehicles")); elasticClient.Index(monteCarlo, x => x.Index("vehicles")); elasticClient.Refresh("vehicles"); var results = elasticClient .Search <Car>(x => x.Index("vehicles") .PostFilter(new { Name = "camaro" })); Assert.NotNull(results); Assert.Equal(1, results.Hits.Count()); Assert.Equal("Camaro", results.Hits.First().Source.Name); } }
public void Properly_filters_date_ranges(string startProductionRunRange, int expectedResults) { using (var elasticsearch = new ElasticsearchInside.Elasticsearch()) { var elasticClient = new ElasticClient(new ConnectionSettings(elasticsearch.Url).EnableDebugMode(x => { Debug.WriteLine(x.DebugInformation); })); var camaro = new Car { Name = "Camaro", StartProductionRun = DateTimeOffset.Parse("2020-01-01T00:00:00Z") }; var corvette = new Car { Name = "Corvette", StartProductionRun = DateTimeOffset.Parse("2010-01-01T00:00:00Z") }; var monteCarlo = new Car { Name = "Monte Carlo", StartProductionRun = DateTimeOffset.Parse("2000-01-01T00:00:00Z") }; elasticClient.Index(camaro, x => x.Index("vehicles")); elasticClient.Index(corvette, x => x.Index("vehicles")); elasticClient.Index(monteCarlo, x => x.Index("vehicles")); elasticClient.Refresh("vehicles"); var noResults = elasticClient.Search <Car>(s => s.Index("vehicles").Query( q => q.Bool(x => x.Filter(new { StartProductionRun = Range.FromString <DateTime>(startProductionRunRange) })))); Assert.Equal(expectedResults, noResults.Hits.Count()); } }
public void Properly_filters_numeric_ranges(string yearRange, int expectedResults) { using (var elasticsearch = new ElasticsearchInside.Elasticsearch()) { var elasticClient = new ElasticClient(new ConnectionSettings(elasticsearch.Url).EnableDebugMode(x => { Debug.WriteLine(x.DebugInformation); })); var camaro = new Car { Name = "Camaro", Year = 2020 }; var corvette = new Car { Name = "Corvette", Year = 2010 }; var monteCarlo = new Car { Name = "Monte Carlo", Year = 2000 }; elasticClient.Index(camaro, x => x.Index("vehicles")); elasticClient.Index(corvette, x => x.Index("vehicles")); elasticClient.Index(monteCarlo, x => x.Index("vehicles")); elasticClient.Refresh("vehicles"); var noResults = elasticClient.Search <Car>(s => s.Index("vehicles").Query( q => q.Bool(x => x.Filter(new { Year = Range.FromString <int>(yearRange) })))); Assert.Equal(expectedResults, noResults.Hits.Count()); } }
public void Nullable_boolean_null_returns_expected_results() { using (var elasticsearch = new ElasticsearchInside.Elasticsearch()) { var elasticClient = new ElasticClient(new ConnectionSettings(elasticsearch.Url)); var camaro = new Car { Name = "Camaro", IsElectric = false }; var volt = new Car { Name = "Volt", IsElectric = true }; elasticClient.Index(camaro, x => x.Index("vehicles")); elasticClient.Index(volt, x => x.Index("vehicles")); elasticClient.Refresh("vehicles"); var results = elasticClient.Search <Car>(s => s.Index("vehicles").Query( q => q.MatchAll() && q.Bool(x => x.Filter(new { IsElectric = (bool?)null })))); Assert.Collection( results.Hits.OrderBy(x => x.Source.Name), x => Assert.Equal("Camaro", x.Source.Name), x => Assert.Equal("Volt", x.Source.Name)); } }
public void Can_query_using_collection() { using (var elasticsearch = new ElasticsearchInside.Elasticsearch()) { var elasticClient = new ElasticClient(new ConnectionSettings(elasticsearch.Url)); var camaro = new Car { Name = "Camaro" }; var corvette = new Car { Name = "Corvette" }; var monteCarlo = new Car { Name = "Monte Carlo" }; elasticClient.Index(camaro, x => x.Index("vehicles")); elasticClient.Index(corvette, x => x.Index("vehicles")); elasticClient.Index(monteCarlo, x => x.Index("vehicles")); elasticClient.Refresh("vehicles"); var results = elasticClient.Search <Car>(s => s.Index("vehicles").Query( q => q.Bool(x => x.Filter(new { Name = new[] { "camaro", "monte carlo" } })))); Assert.Collection( results.Hits.OrderBy(x => x.Source.Name), x => Assert.Equal("Camaro", x.Source.Name), x => Assert.Equal("Monte Carlo", x.Source.Name)); } }
public void Nullable_boolean_false_returns_expected_results() { using (var elasticsearch = new ElasticsearchInside.Elasticsearch()) { var elasticClient = new ElasticClient(new ConnectionSettings(elasticsearch.Url)); var camaro = new Car { Name = "Camaro", IsElectric = false }; var volt = new Car { Name = "Volt", IsElectric = true }; elasticClient.Index(camaro, x => x.Index("vehicles")); elasticClient.Index(volt, x => x.Index("vehicles")); elasticClient.Refresh("vehicles"); var results = elasticClient .Search <Car>(x => x.Index("vehicles") .PostFilter(new { IsElectric = false })); Assert.Equal("Camaro", results.Hits.Single().Source.Name); } }
public void Nullable_boolean_omitted_returns_expected_results() { using (var elasticsearch = new ElasticsearchInside.Elasticsearch()) { var elasticClient = new ElasticClient(new ConnectionSettings(elasticsearch.Url)); var camaro = new Car { Name = "Camaro", IsElectric = false }; var volt = new Car { Name = "Volt", IsElectric = true }; elasticClient.Index(camaro, x => x.Index("vehicles")); elasticClient.Index(volt, x => x.Index("vehicles")); elasticClient.Refresh("vehicles"); var results = elasticClient.Search <Car>(s => s.Index("vehicles").Query( q => q.MatchAll() && q.Filter(new { }))); Assert.NotNull(results); Assert.Equal(2, results.Hits.Count()); Assert.Equal("Camaro", results.Hits.First().Source.Name); Assert.Equal("Volt", results.Hits.Last().Source.Name); } }
protected ElasticTest(ITestOutputHelper outputHelper) { _output = outputHelper; #if ESV5 _server = new ElasticsearchInside.Elasticsearch(c => c.EnableLogging().LogTo(this.WriteToLog)); #else _server = new ElasticsearchInside.Elasticsearch(c => c.EnableLogging().LogTo(this.WriteToLog)); #endif }
public ESFixture(IMessageSink messageSink) { _messageSink = messageSink; _elasticsearch = new ElasticsearchInside.Elasticsearch(c => c.SetElasticsearchStartTimeout(60) .EnableLogging() .LogTo(s => _messageSink.OnMessage(new Xunit.Sdk.DiagnosticMessage(s ?? string.Empty)))); _elasticsearch.ReadySync(); }
public ElasticSearchConfig() { ElasticSearch = new ElasticsearchInside.Elasticsearch( settings => settings .EnableLogging() .SetPort(9200) .SetElasticsearchStartTimeout(180)) .ReadySync(); ////Arrange ConnectionConfiguration = new ConnectionSettings(ElasticSearch.Url); }
public ElasticSearchConfig() { try { ElasticSearch = new ElasticsearchInside.Elasticsearch( settings => settings .EnableLogging() .SetElasticsearchStartTimeout(180)) .ReadySync(); ConnectionConfiguration = new ConnectionSettings(ElasticSearch.Url); } catch (DllNotFoundException) { } ////Arrange }
public ClusterFixture(IMessageSink messageSink) { _messageSink = messageSink; _elasticsearch = new ElasticsearchInside.Elasticsearch(c => c.SetElasticsearchStartTimeout(6000) .EnableLogging() .LogTo(s => _messageSink.OnMessage(new Xunit.Sdk.DiagnosticMessage(s ?? string.Empty)))); _elasticsearch.ReadySync(); var builder = new TestClusterBuilder(); // add the cluster id for this instance // this allows the silos to safely lookup shared data for this cluster deployment // without this we can only share data via static properties and that messes up parallel testing builder.ConfigureHostConfiguration(config => { config.AddInMemoryCollection(new Dictionary <string, string>() { { nameof(TestClusterId), TestClusterId }, { nameof(ESEndpoint), _elasticsearch.Url.ToString() } }); }); // a configurator allows the silos to configure themselves // at this time, configurators cannot take injected parameters // therefore we must other means of sharing objects as you can see above builder.AddSiloBuilderConfigurator <SiloBuilderConfigurator>(); builder.AddClientBuilderConfigurator <ClientBuilderConfigurator>(); Cluster = builder.Build(); Cluster.Deploy(); //var esTeleM = new ElasticSearchTelemetryConsumer(_elasticsearch.Url, "orleans-telemetry"); //LogManager.TelemetryConsumers.Add(esTeleM); //LogManager.LogConsumers.Add(esTeleM); }
public void Multiple_filter_properties_queried_as_collection_of_and_operators() { using (var elasticsearch = new ElasticsearchInside.Elasticsearch()) { var elasticClient = new ElasticClient(new ConnectionSettings(elasticsearch.Url)); var camaro = new Car { Name = "Camaro", Year = 2000 }; var corvette = new Car { Name = "Corvette", Year = 2016 }; var monteCarlo = new Car { Name = "Monte Carlo", Year = 2000 }; elasticClient.Index(camaro, x => x.Index("vehicles")); elasticClient.Index(corvette, x => x.Index("vehicles")); elasticClient.Index(monteCarlo, x => x.Index("vehicles")); elasticClient.Refresh("vehicles"); var noResults = elasticClient .Search <Car>(x => x.Index("vehicles") .PostFilter(new { Name = new[] { "camaro", "monte carlo" }, Year = 2016 })); Assert.NotNull(noResults); Assert.Equal(0, noResults.Hits.Count()); var twoResults = elasticClient .Search <Car>(x => x.Index("vehicles") .PostFilter(new { Name = new[] { "camaro", "monte carlo", "corvette" }, Year = 2000 })); Assert.NotNull(twoResults); Assert.Equal(2, twoResults.Hits.Count()); Assert.Equal("Camaro", twoResults.Hits.First().Source.Name); Assert.Equal("Monte Carlo", twoResults.Hits.Last().Source.Name); } }
public void Null_string_array_item_does_not_throw_NullReferenceException() { using (var elasticsearch = new ElasticsearchInside.Elasticsearch()) { var elasticClient = new ElasticClient(new ConnectionSettings(elasticsearch.Url)); var camaro = new Car { Name = "Camaro", IsElectric = false }; var volt = new Car { Name = "Volt", IsElectric = true }; elasticClient.Index(camaro, x => x.Index("vehicles")); elasticClient.Index(volt, x => x.Index("vehicles")); elasticClient.Refresh("vehicles"); elasticClient.Search <Car>(s => s.Index("vehicles").Query( q => q.MatchAll() && q.Filter(new { Name = new string[] { null } }))); } }
public Fixture() { Elasticsearch = new ElasticsearchInside.Elasticsearch(); Elasticsearch = Task.Run(() => Elasticsearch.Ready()).Result; }