Пример #1
0
 public void CloseIndexWhichDoesNotExist()
 {
     using (var context = new ElasticsearchContext(ConnectionString, new ElasticsearchSerializerConfiguration(_elasticsearchMappingResolver)))
     {
         context.IndexClose("help");
     }
 }
        public void SearchAggGeohashGridBucketAggregationWithSubAggSignificantTermsBucketAggregationWithNoHits()
        {
            var search = new Search
            {
                Aggs = new List<IAggs>
                {
                    new GeohashGridBucketAggregation("termsDetails", "location")
                    {
                        Aggs = new List<IAggs>
                        {
                            new SignificantTermsBucketAggregation("testSignificantTermsBucketAggregation", "details")
                        },
                        Precision = 2
                    }
                }
            };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                Assert.IsTrue(context.IndexTypeExists<SearchAggTest>());
                var items = context.Search<SearchAggTest>(search, new SearchUrlParameters { SeachType = SeachType.count });
                var termsAggResult = items.PayloadResult.Aggregations.GetComplexValue<TermsBucketAggregationsResult>("termsDetails");
                var significantAggResult = termsAggResult.Buckets[0].GetSubAggregationsFromJTokenName<SignificantTermsBucketAggregationsResult>("testSignificantTermsBucketAggregation");
                Assert.AreEqual(3, significantAggResult.Buckets[0].BgCount);
            }
        }
        public void CreateAliasForIndex2()
        {
            var indexAliasDtoTest = new IndexAliasDtoTest { Id = 1, Description = "Test index for aliases" };

            var aliasParameters = new AliasParameters
            {
                Actions = new List<AliasBaseParameters>
                {
                    new AliasAddParameters("test2", "indexaliasdtotests"),
                    new AliasAddParameters("test3", "indexaliasdtotests")
                }
            };

            using (var context = new ElasticsearchContext(ConnectionString, _elasticsearchMappingResolver))
            {
                context.AddUpdateDocument(indexAliasDtoTest, indexAliasDtoTest.Id);
                context.SaveChanges();

                var result = context.Alias(aliasParameters.ToString());
                Assert.IsTrue(result);

                Assert.IsTrue(context.AliasExists("test2"));
                Assert.IsTrue(context.AliasExists("test3"));

            }
        }
        public void SearchQueryBoolQuery()
        {
            var search = new Search
            {
                Query = new Query(
                    new BoolQuery
                    {
                        Must = new List<IQuery>
                        {
                            new RangeQuery("id") { GreaterThanOrEqualTo = "2", LessThan = "3", LessThanOrEqualTo = "2", GreaterThan = "1" }
                        },
                        MustNot = new List<IQuery>
                        {
                            new RangeQuery("id") {GreaterThan="34"}
                        },
                        Should = new List<IQuery>
                        {
                            new TermQuery("name", "two")
                        },
                        Boost=2.0,
                        DisableCoord= false,
                        MinimumShouldMatch= "2"
                    }
                )
            };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                context.TraceProvider = new ConsoleTraceProvider();
                Assert.IsTrue(context.IndexTypeExists<SearchTest>());
                var items = context.Search<SearchTest>(search);
                Assert.AreEqual(2, items.PayloadResult.Hits.HitsResult[0].Source.Id);
            }
        }
        public void SearchAggDateRangesBucketAggregationKeyedWithNoHits()
        {
            var search = new Search
            {
                Aggs = new List<IAggs>
                {
                    new DateRangeBucketAggregation("testRangesBucketAggregation", "dateofdetails", "MM-yyy", new List<RangeAggregationParameter<string>>
                    {
                        new ToRangeAggregationParameter<string>("now-8M/M"),
                        new ToFromRangeAggregationParameter<string>("now-8M/M", "now-10M/M"),
                        new FromRangeAggregationParameter<string>("now-10M/M")
                        {
                            Key = "keyName"
                        }
                    })
                    {
                        Keyed= true
                    }
                }
            };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                Assert.IsTrue(context.IndexTypeExists<SearchAggTest>());
                var items = context.Search<SearchAggTest>(search, new SearchUrlParameters { SeachType = SeachType.count });
                var aggResult = items.PayloadResult.Aggregations.GetComplexValue<RangesNamedBucketAggregationsResult>("testRangesBucketAggregation");
                var test = aggResult.Buckets.GetSubAggregationsFromJTokenName<RangeBucket>("keyName");

                Assert.AreEqual(7, test.DocCount);
            }
        }
        public void SearchAggFilterBucketAggregationWithChildrenNoHits()
        {
            var search = new Search
            {
                Aggs = new List<IAggs>
                {
                    new FilterBucketAggregation("globalbucket", new GeoDistanceFilter("location", new GeoPoint(32,42), new DistanceUnitKilometer(10000) ))
                    {
                        Aggs = new List<IAggs>
                        {
                            new MaxMetricAggregation("maxAgg", "lift"),
                            new MinMetricAggregation("minAgg", "lift"),
                            new TopHitsMetricAggregation("topHits")
                            {
                                Size = 3
                            }
                        }
                    }
                }
            };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                Assert.IsTrue(context.IndexTypeExists<SearchAggTest>());
                var items = context.Search<SearchAggTest>(search, new SearchUrlParameters { SeachType = SeachType.count });
                var aggResult = items.PayloadResult.Aggregations.GetComplexValue<GlobalBucketAggregationsResult>("globalbucket");
                var max = aggResult.GetSingleMetricSubAggregationValue<double>("maxAgg");
                Assert.AreEqual(7, aggResult.DocCount);
                Assert.AreEqual(2.9, max);
            }
        }
        public void SearchAggGeohashGridBucketAggregationWithTopHitsSubWithNoHits()
        {
            var search = new Search
            {
                Aggs = new List<IAggs>
                {
                    new GeohashGridBucketAggregation("testGeohashGridBucketAggregation", "location")
                    {
                        Aggs = new List<IAggs>
                        {
                            new TopHitsMetricAggregation("tophits")
                        }
                    }
                }
            };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                Assert.IsTrue(context.IndexTypeExists<SearchAggTest>());
                var items = context.Search<SearchAggTest>(search, new SearchUrlParameters { SeachType = SeachType.count });
                var aggResult = items.PayloadResult.Aggregations.GetComplexValue<GeohashGridBucketAggregationsResult>("testGeohashGridBucketAggregation");
                var topHits = aggResult.Buckets[0].GetSubAggregationsFromJTokenName<TopHitsMetricAggregationsResult<SearchAggTest>>("tophits");
                Assert.AreEqual(3, aggResult.Buckets[0].DocCount);
                Assert.AreEqual(3, topHits.Hits.Total);
            }
        }
        public void SearchAggSignificantTermsBucketAggregationPropertiesSet()
        {
            var search = new Search
            {
                Query = new Query(new MatchAllQuery()),
                Aggs = new List<IAggs>
                {
                    new SignificantTermsBucketAggregation("testSignificantTermsBucketAggregation", "details")
                    {
                        BackgroundFilter= new TermFilter("name", "details"),
                        InformationRetrievalRetrieval = new MutualInformation
                        {
                            BackgroundIsSuperset = false,
                            IncludeNegatives = false
                        },
                        ExecutionHint= ExecutionHint.global_ordinals
                    }
                }
            };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                Assert.IsTrue(context.IndexTypeExists<SearchAggTest>());
                var items = context.Search<SearchAggTest>(search, new SearchUrlParameters { SeachType = SeachType.count });
                var aggResult = items.PayloadResult.Aggregations.GetComplexValue<SignificantTermsBucketAggregationsResult>("testSignificantTermsBucketAggregation");
                Assert.AreEqual(7, aggResult.DocCount);
            }
        }
        public void SearchAggTermsBucketAggregationnWithChildrenSubAggNoHits()
        {
            var search = new Search
            {
                Aggs = new List<IAggs>
                {
                    new TermsBucketAggregation("test_min", "info")
                    {
                        Aggs = new List<IAggs>
                        {
                            new ChidrenBucketAggregation("childrenAgg", "testobjchildsep")
                            {
                                Aggs = new List<IAggs>
                                {
                                    new TermsBucketAggregation("infoAgg", "info")
                                }
                            }
                        }
                    }
                }
            };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                Assert.IsTrue(context.IndexTypeExists<TestObjParentSep>());
                Assert.IsTrue(context.IndexTypeExists<TestObjChildSep>());

                var items = context.Search<TestObjParentSep>(search, new SearchUrlParameters { SeachType = SeachType.count });
                var aggResult = items.PayloadResult.Aggregations.GetComplexValue<TermsBucketAggregationsResult>("test_min");

                Assert.AreEqual(3, aggResult.Buckets[0].DocCount);

            }
        }
        public void SearchQueryMoreLikeThisQuery()
        {
            var search = new Search
            {
                Query = new Query(
                    new MoreLikeThisQuery
                    {
                        Fields = new List<string> {"moreinfo"},
                        LikeText = "yes one",
                        MinTermFreq = 1,
                        Boost = 50,
                        MinDocFreq = 1,
                        PercentTermsToMatch = 0.01

                    }
                )
            };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                context.TraceProvider = new ConsoleTraceProvider();
                Assert.IsTrue(context.IndexTypeExists<MoreLikeThisTestDto>());
                var items = context.Search<MoreLikeThisTestDto>(search);
                Assert.AreEqual(2, items.PayloadResult.Hits.Total);
            }
        }
        public void SearchAggTermsBucketAggregationWithSubTopHitsMetricAggregationWithNoHits()
        {
            var search = new Search
            {
                Aggs = new List<IAggs>
                {
                    new TermsBucketAggregation("test_min", "lift")
                    {
                        Aggs = new List<IAggs>
                        {
                            new TopHitsMetricAggregation("topHits")
                            {
                                Size = 5
                            }
                        }
                    }
                }
            };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                Assert.IsTrue(context.IndexTypeExists<SearchAggTest>());
                var items = context.Search<SearchAggTest>(search, new SearchUrlParameters { SeachType = SeachType.count });
                var aggResult = items.PayloadResult.Aggregations.GetComplexValue<TermsBucketAggregationsResult>("test_min");
                var hitsForBucket = aggResult.Buckets[0].GetSubAggregationsFromJTokenName<TopHitsMetricAggregationsResult<SearchAggTest>>("topHits");

                Assert.AreEqual(3, aggResult.Buckets[0].DocCount);
                Assert.AreEqual(2.1, hitsForBucket.Hits.HitsResult[0].Source.Lift);
            }
        }
Пример #12
0
        public void CreateNewIndexAndMappingWithSimpleNullListAndNullArrayListAndAlias()
        {
            using (var context = new ElasticsearchContext(ConnectionString, new ElasticsearchSerializerConfiguration(_elasticsearchMappingResolver)))
            {
                context.TraceProvider = new ConsoleTraceProvider();
                context.IndexCreate<AliasCreateIndexOne>(
                    new IndexDefinition
                    {
                        IndexAliases = new IndexAliases
                        {
                            Aliases = new List<IndexAlias>
                            {
                                new IndexAlias("testnew"), new IndexAlias("testnewroute")
                                {
                                    Routing = "ddd"
                                }
                            }
                        }
                    });

                Thread.Sleep(1500);
                var result = context.IndexExists<AliasCreateIndexOne>();
                Assert.IsTrue(result);
            }
        }
        public void SearchAggScriptedMetricAggregationWithParamsWithNoHits()
        {
            var search = new Search
            {
                Aggs = new List<IAggs>
                {
                    new ScriptedMetricAggregation("topScriptedMetricAggregation", "_agg.transactions.add(doc['lift'].value  * _agg.times)")
                    {
                        InitScript= "_agg['transactions'] = []",
                        CombineScript= "script_calculated = 0; for (t in _agg.transactions) { script_calculated += t }; return script_calculated",
                        ReduceScript= "script_calculated = 0; for (a in _aggs) { script_calculated += a }; return script_calculated",
                        Params = new ParamsForScript("_agg")
                        {
                            Params = new List<ScriptParameter>
                            {
                                new ScriptParameter("times", 1.4),
                            }
                        }
                    }
                }
            };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                Assert.IsTrue(context.IndexTypeExists<SearchAggTest>());
                var items = context.Search<SearchAggTest>(search, new SearchUrlParameters { SeachType = SeachType.count });
                var aggResult = items.PayloadResult.Aggregations.GetSingleMetricAggregationValue<double>("topScriptedMetricAggregation");
                Assert.AreEqual(22.82, aggResult);

            }
        }
        public void CreateGeoShapeCircleMapping()
        {
            var geoShapeCircleDto = new GeoShapeCircleDto
            {
                CircleTest = new GeoShapeCircle
                {
                    Coordinates = new GeoPoint(45, 45),
                    Radius="100m"
                },
                Id = "1",
                Name = "test",
            };

            using (var context = new ElasticsearchContext(ConnectionString, new ElasticsearchSerializerConfiguration(_elasticsearchMappingResolver)))
            {
                context.TraceProvider = new ConsoleTraceProvider();
                context.IndexCreate<GeoShapeCircleDto>();

                Thread.Sleep(1500);
                Assert.IsNotNull(context.IndexExists<GeoShapeCircleDto>());

                context.AddUpdateDocument(geoShapeCircleDto, geoShapeCircleDto.Id);
                context.SaveChanges();
                Thread.Sleep(1500);
                Assert.AreEqual(1, context.Count<GeoShapeCircleDto>());
                var result = context.SearchById<GeoShapeCircleDto>(1);
                Assert.AreEqual(geoShapeCircleDto.CircleTest.Coordinates.Count, result.CircleTest.Coordinates.Count);
            }
        }
        public void SearchQueryQueryStringQueryAllProperties()
        {
            var search = new Search
            {
                Query = new Query(new QueryStringQuery("one document")
                {
                    AllowLeadingWildcard = true,
                    Analyzer = LanguageAnalyzers.German,
                    AnalyzeWildcard = false,
                    AutoGeneratePhraseQueries = false,
                    Boost = 2.1,
                    DefaultField = "_all",
                    DefaultOperator = QueryDefaultOperator.OR,
                    EnablePositionIncrements = true,
                    Fuzziness = 0.5,
                    FuzzyMaxExpansions = 49,
                    FuzzyPrefixLength = 0,
                    Lenient = false,
                    Locale = "ROOT"
                })
            };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                Assert.IsTrue(context.IndexTypeExists<SearchTest>());
                var items = context.Search<SearchTest>(search);
                Assert.AreEqual(2, items.PayloadResult.Hits.Total);
            }
        }
Пример #16
0
 public void TearDown()
 {
     using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
     {
         context.AllowDeleteForIndex = true;
         var entityResult = context.DeleteIndexAsync<SearchTest>(); entityResult.Wait();
     }
 }
Пример #17
0
 public void TestAliasExistsBadAlias()
 {
     using (var context = new ElasticsearchContext(ConnectionString, _elasticsearchMappingResolver))
     {
         context.TraceProvider = new ConsoleTraceProvider();
         var found = context.AliasExists("existsaliastest".ToUpper());
         Assert.IsFalse(found);
     }
 }
Пример #18
0
        static void Main(string[] args)
        {
            IElasticsearchMappingResolver elasticsearchMappingResolver = new ElasticsearchMappingResolver();
            // You only require a mapping if the default settings are not good enough
            //elasticsearchMappingResolver.AddElasticSearchMappingForEntityType(typeof(Skill), new SkillElasticsearchMapping());

            using (var elasticSearchContext = new ElasticsearchContext("http://localhost:9200/", elasticsearchMappingResolver))
            {
                elasticSearchContext.TraceProvider = new TraceProvider("tracingExample");
                elasticSearchContext.AddUpdateDocument(TestData.SkillEf, TestData.SkillEf.Id);
                elasticSearchContext.AddUpdateDocument(TestData.SkillOrm, TestData.SkillOrm.Id);
                elasticSearchContext.AddUpdateDocument(TestData.SkillSQLServer, TestData.SkillSQLServer.Id);
                elasticSearchContext.AddUpdateDocument(TestData.SkillGermanWithFunnyLetters, TestData.SkillGermanWithFunnyLetters.Id);
                elasticSearchContext.AddUpdateDocument(TestData.SkillLevel, TestData.SkillLevel.Id);

                var addEntitiesResult = elasticSearchContext.SaveChanges();

                Console.WriteLine(addEntitiesResult.PayloadResult);
                Console.WriteLine(addEntitiesResult.Status);
                Console.WriteLine(addEntitiesResult.Description);
            }

            using (var elasticSearchContext = new ElasticsearchContext("http://localhost:9200/", elasticsearchMappingResolver))
            {
                elasticSearchContext.TraceProvider = new TraceProvider("tracingExample");
                // get a entity and update it, then delete an entity
                Skill singleEntityWithId = elasticSearchContext.GetDocument<Skill>("11");
                singleEntityWithId.Updated = DateTime.UtcNow;
                elasticSearchContext.AddUpdateDocument(TestData.SkillOrm, TestData.SkillOrm.Id);
                elasticSearchContext.DeleteDocument<Skill>(TestData.SkillEf.Id);
                elasticSearchContext.SaveChanges();

                elasticSearchContext.AddUpdateDocument(TestData.SkillEf, TestData.SkillEf.Id);
                var nextResult = elasticSearchContext.SaveChanges();

                Console.WriteLine(nextResult.PayloadResult);
                Console.WriteLine(nextResult.Status);
                Console.WriteLine(nextResult.Description);
            }

            using (var elasticSearchContext = new ElasticsearchContext("http://localhost:9200/", elasticsearchMappingResolver))
            {
                elasticSearchContext.TraceProvider = new TraceProvider("tracingExample");
                // deleting indexes are usually not required...
                elasticSearchContext.AllowDeleteForIndex = true;
                var result = elasticSearchContext.DeleteIndexAsync<SkillLevel>();
                result.Wait();
                var result1 = elasticSearchContext.DeleteIndexAsync<Skill>();
                result1.Wait();
                //var result = elasticSearchContext.DeleteIndex<Skill>();
                elasticSearchContext.SaveChanges();
                //Console.WriteLine(result.Result.PayloadResult);
                //Console.WriteLine(result.Result.Status);
                //Console.WriteLine(result.Result.Description);
                //Console.ReadLine();
            }
        }
 public void GlobalElasticsearchMappingSearchAllTest()
 {
     // You require this for a global search, it is in the setup fixture
     //_elasticsearchMappingResolver.AddElasticSearchMappingForEntityType(typeof(object), new GlobalElasticsearchMapping());
     using (var context = new ElasticsearchContext(ConnectionString, _elasticsearchMappingResolver))
     {
         var results = context.Search<object>(new Search());
         Assert.GreaterOrEqual(results.PayloadResult.Hits.Total, 3);
     }
 }
 public void GlobalElasticsearchMappingCountTest()
 {
     // You require this for a global search, it is in the setup fixture
     //_elasticsearchMappingResolver.AddElasticSearchMappingForEntityType(typeof(object), new GlobalElasticsearchMapping());
     using (var context = new ElasticsearchContext(ConnectionString, _elasticsearchMappingResolver))
     {
         var count = context.Count<object>();
         Assert.GreaterOrEqual(count, 3);
     }
 }
        public void SearchQueryMultiMatchAllTest()
        {
            var search = new Search { Query = new Query(new MultiMatchQuery("document") { MultiMatchType = MultiMatchType.most_fields, TieBreaker = 0.5, Fields = new List<string> { "name", "details" } }) };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                Assert.IsTrue(context.IndexTypeExists<SearchTest>());
                var items = context.Search<SearchTest>(search);
                Assert.AreEqual(1, items.PayloadResult.Hits.HitsResult[0].Source.Id);
            }
        }
        public void SearchFilterMatchAllTest()
        {
            var search = new Search { Filter = new Filter(new MatchAllFilter { Boost = 1.1 }) };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                Assert.IsTrue(context.IndexTypeExists<SearchTest>());
                var items = context.Search<SearchTest>(search);
                Assert.AreEqual(1, items.PayloadResult.Hits.HitsResult[0].Source.Id);
            }
        }
        public void SearchQueryQueryStringQuery()
        {
            var search = new Search { Query = new Query(new QueryStringQuery("one document")) };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                Assert.IsTrue(context.IndexTypeExists<SearchTest>());
                var items = context.Search<SearchTest>(search);
                Assert.AreEqual(2, items.PayloadResult.Hits.Total);
            }
        }
        public void SearchQueryConstantScoreQueryWithQuery()
        {
            var search = new Search { Query = new Query(new ConstantScoreQuery(new TermQuery("name", "two")){Boost = 2.0}) };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                Assert.IsTrue(context.IndexTypeExists<SearchTest>());
                var items = context.Search<SearchTest>(search);
                Assert.AreEqual(2, items.PayloadResult.Hits.HitsResult[0].Source.Id);
            }
        }
        public void SearchQueryMatchTest()
        {
            var search = new Search { Query = new Query(new MatchQuery("name", "document one") { Boost = 1.1, Fuzziness = 1 }) };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                Assert.IsTrue(context.IndexTypeExists<SearchTest>());
                var items = context.Search<SearchTest>(search);
                Assert.AreEqual(1, items.PayloadResult.Hits.HitsResult[0].Source.Id);
            }
        }
        public Address GetAddressFromElasticsearch(int id)
        {
            Address address;
            IElasticsearchMappingResolver ElasticsearchMappingResolver = new ElasticsearchMappingResolver();
            using (var ElasticsearchContext = new ElasticsearchContext("http://localhost:9200/", ElasticsearchMappingResolver))
            {
                address = ElasticsearchContext.GetDocument<Address>(id);
            }

            return address;
        }
        public Person GetPersonFromElasticsearch(int id)
        {
            Person person;
            IElasticsearchMappingResolver ElasticsearchMappingResolver = new ElasticsearchMappingResolver();
            using (var ElasticsearchContext = new ElasticsearchContext("http://localhost:9200/", ElasticsearchMappingResolver))
            {
                person = ElasticsearchContext.GetDocument<Person>(id);
            }

            return person;
        }
        public void SearchQueryMatchPhaseTest()
        {
            var search = new Search { Query = new Query(new MatchPhaseQuery("name", "one") { Analyzer = LanguageAnalyzers.German, Slop = 1, Operator = Operator.and, CutoffFrequency = 0.2, ZeroTermsQuery = ZeroTermsQuery.none, Boost = 1.1, Fuzziness = 1 }) };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                Assert.IsTrue(context.IndexTypeExists<SearchTest>());
                var items = context.Search<SearchTest>(search);
                Assert.AreEqual(1, items.PayloadResult.Hits.HitsResult[0].Source.Id);
            }
        }
		public void SaveToElasticsearchStateProvinceIfitDoesNotExist()
		{
			IElasticsearchMappingResolver elasticsearchMappingResolver = new ElasticsearchMappingResolver();
			using (var elasticSearchContext = new ElasticsearchContext("http://localhost:9200/", new ElasticsearchSerializerConfiguration(elasticsearchMappingResolver, true, true)))
			{
				if (!elasticSearchContext.IndexTypeExists<StateProvince>())
				{
					elasticSearchContext.TraceProvider = new ConsoleTraceProvider();
					using (var databaseEfModel = new EfModel())
					{
						int pointer = 0;
						const int interval = 20;
						bool firstRun = true;
						int length = databaseEfModel.StateProvince.Count();

						while (pointer < length)
						{
							_stopwatch.Start();
							var collection =
								databaseEfModel.StateProvince.OrderBy(t => t.StateProvinceID)
									.Skip(pointer)
									.Take(interval)
									.ToList<StateProvince>();
							_stopwatch.Stop();
							Console.WriteLine("Time taken for select {0} Address: {1}", interval, _stopwatch.Elapsed);
							_stopwatch.Reset();

							_stopwatch.Start();
							foreach (var item in collection)
							{
								var ee = item.CountryRegion.Name;
								elasticSearchContext.AddUpdateDocument(item, item.StateProvinceID);
							}

							if (firstRun)
							{
								elasticSearchContext.SaveChangesAndInitMappings();
								firstRun = false;
							}
							else
							{
								elasticSearchContext.SaveChanges();
							}

							_stopwatch.Stop();
							Console.WriteLine("Time taken to insert {0} Address documents: {1}", interval, _stopwatch.Elapsed);
							_stopwatch.Reset();
							pointer = pointer + interval;
							Console.WriteLine("Transferred: {0} items", pointer);
						}
					}
				}
			}
		}
        public void SearchQueryMatchPhasePrefixTest()
        {
            var search = new Search { Query = new Query(new MatchPhasePrefixQuery("name", "one") { MaxExpansions = 500, Boost = 1.1, MinimumShouldMatch = "50%", Fuzziness = 1 }) };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                Assert.IsTrue(context.IndexTypeExists<SearchTest>());
                var items = context.Search<SearchTest>(search);
                Assert.AreEqual(1, items.PayloadResult.Hits.HitsResult[0].Source.Id);
            }
        }
Пример #31
0
        public void DeleteGlobalWarmer()
        {
            var ex = Assert.Throws <ElasticsearchCrudException>(() =>
            {
                using (var context = new ElasticsearchContext(ConnectionString, _elasticsearchMappingResolver))
                {
                    const string warmerName = "mywarmerone";
                    var warmer = new Warmer(warmerName)
                    {
                        Query = new Query(new MatchAllQuery())
                    };
                    context.TraceProvider = new ConsoleTraceProvider();
                    var found             = context.WarmerCreate(warmer);
                    Assert.True(found);

                    var ok = context.WarmerDelete(warmerName, "");
                    Assert.True(ok);
                }
            });
        }
        public void SearchQueryRegExpQuery()
        {
            var search = new Search
            {
                Query = new Query(new RegExpQuery("name", "o.*")
                {
                    Boost = 1.7,
                    Flags = RegExpFlags.INTERSECTION,
                    MaxDeterminizedStates = 10000
                })
            };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                context.TraceProvider = new ConsoleTraceProvider();
                Assert.IsTrue(context.IndexTypeExists <SearchTest>());
                var items = context.Search <SearchTest>(search);
                Assert.AreEqual(1, items.PayloadResult.Hits.Total);
            }
        }
        public void SearchAggTermsBucketAggregationWithNoHits()
        {
            var search = new Search
            {
                Aggs = new List <IAggs>
                {
                    new TermsBucketAggregation("test_min", "lift")
                }
            };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                Assert.IsTrue(context.IndexTypeExists <SearchAggTest>());
                var items = context.Search <SearchAggTest>(search, new SearchUrlParameters {
                    SeachType = SeachType.count
                });
                var aggResult = items.PayloadResult.Aggregations.GetComplexValue <TermsBucketAggregationsResult>("test_min");
                Assert.AreEqual(3, aggResult.Buckets[0].DocCount);
            }
        }
        public void SearchFilterHasParentQuery()
        {
            var search = new Search
            {
                Query =
                    new Query(
                        new HasParentQuery("testobjparentsep", new MatchAllQuery())
                {
                    ScoreMode = ScoreModeHasParentQuery.none
                }
                        )
            };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                Assert.IsTrue(context.IndexTypeExists <TestObjChildSep>());
                var items = context.Search <TestObjChildSep>(search);
                Assert.AreEqual(4, items.PayloadResult.Hits.Total);
            }
        }
        public void SearchFilterHasChildFilter()
        {
            var search = new Search {
                Filter =
                    new Filter(
                        new HasChildFilter("testobjchildsep", new MatchAllFilter())
                {
                    MaxChildren = 10,
                    MinChildren = 2
                }
                        )
            };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                Assert.IsTrue(context.IndexTypeExists <TestObjParentSep>());
                var items = context.Search <TestObjParentSep>(search);
                Assert.AreEqual(3, items.PayloadResult.Hits.HitsResult[0].Source.Id);
            }
        }
        public void SearchAggDateHistogramBucketAggregationWithNoHits()
        {
            var search = new Search
            {
                Aggs = new List <IAggs>
                {
                    new DateHistogramBucketAggregation("testHistogramBucketAggregation", "dateofdetails", new TimeUnitMonth(1))
                }
            };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                Assert.True(context.IndexTypeExists <SearchAggTest>());
                var items = context.Search <SearchAggTest>(search, new SearchUrlParameters {
                    SeachType = SeachType.count
                });
                var aggResult = items.PayloadResult.Aggregations.GetComplexValue <DateHistogramBucketAggregationsResult>("testHistogramBucketAggregation");
                Assert.Equal(1, aggResult.Buckets[0].DocCount);
            }
        }
 public void TearDown()
 {
     using (var context = new ElasticsearchContext(ConnectionString, _elasticsearchMappingResolver))
     {
         context.AllowDeleteForIndex = true;
         var entityResult1  = context.DeleteIndexAsync <SkillTestEntityTwo>(); entityResult1.Wait();
         var entityResult2  = context.DeleteIndexAsync <SkillParentCollection>(); entityResult2.Wait();
         var entityResult3  = context.DeleteIndexAsync <SkillParentArray>(); entityResult3.Wait();
         var entityResult4  = context.DeleteIndexAsync <SkillChild>(); entityResult4.Wait();
         var entityResult5  = context.DeleteIndexAsync <SkillTestEntity>(); entityResult5.Wait();
         var entityResult6  = context.DeleteIndexAsync <SkillWithIntArray>(); entityResult6.Wait();
         var entityResult7  = context.DeleteIndexAsync <SkillWithIntCollection>(); entityResult7.Wait();
         var entityResult8  = context.DeleteIndexAsync <SkillWithSingleChild>(); entityResult8.Wait();
         var entityResult9  = context.DeleteIndexAsync <SkillSingleChildElement>(); entityResult9.Wait();
         var entityResult10 = context.DeleteIndexAsync <SkillWithIntCollection>(); entityResult10.Wait();
         var entityResult11 = context.DeleteIndexAsync <SkillWithStringLongAndDoubleArray>(); entityResult11.Wait();
         var entityResult12 = context.DeleteIndexAsync <SkillWithStringLongAndDoubleCollection>(); entityResult12.Wait();
         var entityResult13 = context.DeleteIndexAsync <SkillDocumentHastSet>(); entityResult13.Wait();
     }
 }
        public void SearchQueryCommonTermsQueryLikeBoolMatch()
        {
            var search = new Search
            {
                Query = new Query(
                    new CommonTermsQuery("details", "leave it alone", 0.001)
                {
                    LowFreqOperator = QueryDefaultOperator.AND
                }
                    )
            };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                context.TraceProvider = new ConsoleTraceProvider();
                Assert.True(context.IndexTypeExists <SearchTest>());
                var items = context.Search <SearchTest>(search);
                Assert.Equal(1, items.PayloadResult.Hits.Total);
            }
        }
        public void SearchQueryIdsFilter()
        {
            var search = new Search
            {
                Filter = new Filter(new IdsFilter(new List <object> {
                    1, 2
                })
                {
                    Type = "searchtest"
                })
            };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                context.TraceProvider = new ConsoleTraceProvider();
                Assert.IsTrue(context.IndexTypeExists <SearchTest>());
                var items = context.Search <SearchTest>(search);
                Assert.AreEqual(2, items.PayloadResult.Hits.Total);
            }
        }
Пример #40
0
        public void SearchAggMissingBucketAggregationWithNoHits()
        {
            var search = new Search
            {
                Aggs = new List <IAggs>
                {
                    new MissingBucketAggregation("missingbucket", "nonExistingFieldName")
                }
            };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                Assert.True(context.IndexTypeExists <SearchAggTest>());
                var items = context.Search <SearchAggTest>(search, new SearchUrlParameters {
                    SeachType = SeachType.count
                });
                var aggResult = items.PayloadResult.Aggregations.GetComplexValue <MissingBucketAggregationsResult>("missingbucket");
                Assert.Equal(7, aggResult.DocCount);
            }
        }
        public void SearchQueryNotFilter()
        {
            var search = new Search
            {
                Filter = new Filter(
                    new NotFilter(new TermFilter("name", "one"))
                {
                    Cache = false
                }
                    )
            };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                context.TraceProvider = new ConsoleTraceProvider();
                Assert.IsTrue(context.IndexTypeExists <SearchTest>());
                var items = context.Search <SearchTest>(search);
                Assert.AreEqual(2, items.PayloadResult.Hits.Total);
            }
        }
Пример #42
0
        public void TestDefaultContextGetEntityAsync()
        {
            const int entityId = 34;

            using (var context = new ElasticsearchContext(ConnectionString, _elasticsearchMappingResolver))
            {
                context.TraceProvider = new ConsoleTraceProvider();
                context.AddUpdateDocument(_entitiesForTests[entityId], entityId);

                // Save to Elasticsearch
                var ret = context.SaveChangesAsync();
                Assert.AreEqual(ret.Result.Status, HttpStatusCode.OK);

                // Get the entity
                var entityResult = context.GetDocumentAsync <SkillTestEntity>(entityId);
                Assert.AreEqual(entityResult.Result.Status, HttpStatusCode.OK);
                Assert.AreEqual(entityResult.Result.PayloadResult.Id, entityId);
                Assert.IsNotNull(entityResult.Result.PayloadResult);
            }
        }
        public void SearchFilterHasParentFilterInnerHits()
        {
            var search = new Search
            {
                Filter =
                    new Filter(
                        new HasParentFilter("testobjparentsep", new MatchAllFilter())
                {
                    InnerHits = new InnerHits()
                }
                        )
            };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                Assert.IsTrue(context.IndexTypeExists <TestObjChildSep>());
                var items = context.Search <TestObjChildSep>(search);
                Assert.AreEqual(4, items.PayloadResult.Hits.Total);
            }
        }
        public void SearchQueryBoolFilter()
        {
            var search = new Search
            {
                Filter = new Filter(
                    new BoolFilter(new RangeFilter("id")
                {
                    GreaterThanOrEqualTo = "2", LessThan = "3", LessThanOrEqualTo = "2", GreaterThan = "1"
                })
                    )
            };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                context.TraceProvider = new ConsoleTraceProvider();
                Assert.IsTrue(context.IndexTypeExists <SearchTest>());
                var items = context.Search <SearchTest>(search);
                Assert.AreEqual(2, items.PayloadResult.Hits.HitsResult[0].Source.Id);
            }
        }
        public void CreateAliasForIndex()
        {
            var indexAliasDtoTest = new IndexAliasDtoTest {
                Id = 1, Description = "Test index for aliases"
            };

            using (var context = new ElasticsearchContext(ConnectionString, _elasticsearchMappingResolver))
            {
                context.AddUpdateDocument(indexAliasDtoTest, indexAliasDtoTest.Id);
                context.SaveChanges();

                var result = context.AliasCreateForIndex("test", "indexaliasdtotests");
                Assert.True(result);

                Thread.Sleep(1200);

                GetResult resultGet = context.Get(new Uri("http://localhost:9200/_alias/test"));
                Console.WriteLine(resultGet);
            }
        }
        public void CreateIndexWithParentChildMappings()
        {
            CreateIndexList();

            using (var context = new ElasticsearchContext(ConnectionString, _elasticsearchMappingResolver))
            {
                var doc1 = context.GetDocument <ListMappingChildParentRoutingTestsLevel1>(1);
                Assert.NotNull(doc1);

                var doc2 = context.GetDocument <ListMappingChildParentRoutingTestsLevel2>(2, new RoutingDefinition {
                    ParentId = 1, RoutingId = 1
                });
                Assert.NotNull(doc2);

                var doc3 = context.GetDocument <ListMappingChildParentRoutingTestsLevel3>(3, new RoutingDefinition {
                    ParentId = 2, RoutingId = 1
                });
                Assert.NotNull(doc3);
            }
        }
Пример #47
0
        public void SaveToElasticsearchStateProvince()
        {
            IElasticsearchMappingResolver elasticsearchMappingResolver = new ElasticsearchMappingResolver();

            using (var elasticSearchContext = new ElasticsearchContext("http://localhost:9200/", new ElasticsearchSerializerConfiguration(elasticsearchMappingResolver, true, true)))
            {
                //elasticSearchContext.TraceProvider = new ConsoleTraceProvider();
                elasticSearchContext.IndexCreate <StateProvince>();
                using (var databaseEfModel = new SQLDataModel())
                {
                    int       pointer  = 0;
                    const int interval = 20;
                    int       length   = databaseEfModel.StateProvince.Count();

                    while (pointer < length)
                    {
                        stopwatch.Start();
                        var collection = databaseEfModel.StateProvince.OrderBy(t => t.StateProvinceID).Skip(pointer).Take(interval).ToList <StateProvince>();
                        stopwatch.Stop();
                        Console.WriteLine("Time taken for select {0} Address: {1}", interval, stopwatch.Elapsed);
                        stopwatch.Reset();

                        stopwatch.Start();
                        foreach (var item in collection)
                        {
                            var ee = item.CountryRegion.Name;
                            var t  = item.Address.ToList();
                            elasticSearchContext.AddUpdateDocument(item, item.StateProvinceID);
                        }

                        elasticSearchContext.SaveChanges();

                        stopwatch.Stop();
                        Console.WriteLine("Time taken to insert {0} Address documents: {1}", interval, stopwatch.Elapsed);
                        stopwatch.Reset();
                        pointer = pointer + interval;
                        Console.WriteLine("Transferred: {0} items", pointer);
                    }
                }
            }
        }
        public void TestDefaultContextTestJsonIgnore()
        {
            using (var context = new ElasticsearchContext(ConnectionString, _elasticsearchMappingResolver))
            {
                context.TraceProvider = new ConsoleTraceProvider();

                var testJsonIgnore = new TestJsonIgnore
                {
                    MyStringArray = new List <string> {
                        "ff", "dd"
                    },
                    BlahBlah    = "sss",
                    Id          = 3,
                    MyLongArray = new List <long> {
                        23, 4323456, 333332
                    },
                    SkillSingleChildElement = new SkillSingleChildElement {
                        Details = "ss", Id = 3
                    },
                    SkillSingleChildElementList =
                        new List <SkillSingleChildElement> {
                        new SkillSingleChildElement {
                            Details = "ww", Id = 2
                        }
                    }
                };

                context.AddUpdateDocument(testJsonIgnore, testJsonIgnore.Id);

                // Save to Elasticsearch
                context.SaveChanges();

                var ret = context.GetDocument <TestJsonIgnore>(3);
                Assert.AreEqual(ret.MyLongArray, null);
                Assert.AreEqual(ret.SkillSingleChildElement, null);
                Assert.AreEqual(ret.SkillSingleChildElementList, null);
                Assert.AreEqual(ret.BlahBlahNull, null);
                Assert.AreEqual(ret.BlahBlah, "sss");
                Assert.AreEqual(ret.Id, 3);
            }
        }
Пример #49
0
        public void SearchAggPercentileRanksMetricAggregationNoHits()
        {
            var search = new Search
            {
                Size = 0,
                Aggs = new List <IAggs>
                {
                    new PercentileRanksMetricAggregation("test_PercentilesMetricAggregation", "lift", new List <double> {
                        20.0, 30.0, 40.0
                    })
                }
            };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                Assert.True(context.IndexTypeExists <SearchAggTest>());
                var items     = context.Search <SearchAggTest>(search);
                var aggResult = items.PayloadResult.Aggregations.GetComplexValue <PercentileRanksMetricAggregationsResult>("test_PercentilesMetricAggregation");
                Assert.Equal(100, aggResult.Values["20.0"]);
            }
        }
        public void SearchQueryGeoDistanceFilter0Range()
        {
            var search = new Search {
                Filter =
                    new Filter(
                        new GeoDistanceFilter(
                            "location",
                            new GeoPoint(43, 43),
                            new DistanceUnitMeter(0)
                            )
                        )
            };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                context.TraceProvider = new ConsoleTraceProvider();
                Assert.IsTrue(context.IndexTypeExists <SearchTest>());
                var items = context.Search <SearchTest>(search);
                Assert.AreEqual(0, items.PayloadResult.Hits.Total);
            }
        }
Пример #51
0
        public void CreateNewIndexAndMappingWithSimpleNullListAndNullArrayListAndAlias()
        {
            using (var context = new ElasticsearchContext(ConnectionString, new ElasticsearchSerializerConfiguration(_elasticsearchMappingResolver)))
            {
                context.TraceProvider = new ConsoleTraceProvider();
                context.IndexCreate <AliasCreateIndexOne>(new IndexDefinition {
                    IndexAliases = new IndexAliases {
                        Aliases = new List <IndexAlias> {
                            new IndexAlias("testnew"), new IndexAlias("testnewroute")
                            {
                                Routing = "ddd"
                            }
                        }
                    }
                });

                Thread.Sleep(1500);
                var result = context.IndexExists <AliasCreateIndexOne>();
                Assert.IsTrue(result);
            }
        }
Пример #52
0
        public static void Main(string[] args)
        {
            IElasticsearchMappingResolver elasticsearchMappingResolver = new ElasticsearchMappingResolver();

            // You only require a mapping if the default settings are not good enough
            elasticsearchMappingResolver.AddElasticSearchMappingForEntityType(typeof(AppRecord), new AppRecordMapping());

            using (var elasticSearchContext = new ElasticsearchContext("http://localhost:9200/", elasticsearchMappingResolver))
            {
                elasticSearchContext.TraceProvider = new TraceProvider("tracingExample");
                elasticSearchContext.AddUpdateDocument(TestData.AppRecord1, TestData.AppRecord1.Hash);
                elasticSearchContext.AddUpdateDocument(TestData.AppRecord2, TestData.AppRecord2.Hash);
                elasticSearchContext.AddUpdateDocument(TestData.AppRecord3, TestData.AppRecord3.Hash);

                var addEntitiesResult = elasticSearchContext.SaveChanges();

                Console.WriteLine(addEntitiesResult.PayloadResult);
                Console.WriteLine(addEntitiesResult.Status);
                Console.WriteLine(addEntitiesResult.Description);
            }
        }
Пример #53
0
        public void SearchQueryQueryStringQueryMultipleFields()
        {
            var search = new Search
            {
                Query = new Query(new QueryStringQuery("one document")
                {
                    Fields = new List <string> {
                        "name", "details"
                    },
                    TieBreaker = 1,
                    UseDisMax  = true
                })
            };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                Assert.IsTrue(context.IndexTypeExists <SearchTest>());
                var items = context.Search <SearchTest>(search);
                Assert.AreEqual(2, items.PayloadResult.Hits.Total);
            }
        }
Пример #54
0
        public void SearchQueryGeoDistanceFilter0Range()
        {
            var search = new Search {
                Filter =
                    new Filter(
                        new GeoDistanceFilter(
                            "location",
                            new GeoPoint(43, 43),
                            new DistanceUnitMeter(0)
                            )
                        )
            };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                context.TraceProvider = new ConsoleTraceProvider();
                Assert.True(context.IndexTypeExists <SearchTest>());
                var items = context.Search <SearchTest>(search);
                Assert.True(items.Description.Contains("invalid radiusMeters"));
            }
        }
Пример #55
0
        public void SearchQueryScriptFilter()
        {
            var search = new Search
            {
                Filter = new Filter(new ScriptFilter("doc['lift'].value * factor")
                {
                    Params = new List <ScriptParameter>
                    {
                        new ScriptParameter("factor", 1.5)
                    }
                })
            };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                context.TraceProvider = new ConsoleTraceProvider();
                Assert.True(context.IndexTypeExists <SearchTest>());
                var items = context.Search <SearchTest>(search);
                Assert.Equal(3, items.PayloadResult.Hits.Total);
            }
        }
        public void TestDefaultContextParentWithANullHashSetOfChildObjectNested()
        {
            var testSkillParentObject = new SkillDocumentHastSet
            {
                Id = 1,
                NameSkillParent = "cool",
            };

            using (var context = new ElasticsearchContext(ConnectionString, _elasticsearchMappingResolver))
            {
                context.TraceProvider = new ConsoleTraceProvider();
                context.AddUpdateDocument(testSkillParentObject, testSkillParentObject.Id);

                // Save to Elasticsearch
                var ret = context.SaveChanges();
                Assert.Equal(ret.Status, HttpStatusCode.OK);

                var roundTripResult = context.GetDocument <SkillDocumentHastSet>(testSkillParentObject.Id);
                Assert.Equal(roundTripResult.NameSkillParent, testSkillParentObject.NameSkillParent);
            }
        }
        public void TestDefaultContextParentNestedIntCollectionEqualsNull()
        {
            using (var context = new ElasticsearchContext(ConnectionString, _elasticsearchMappingResolver))
            {
                context.TraceProvider = new ConsoleTraceProvider();
                var skillWithIntArray = new SkillWithIntCollection {
                    BlahBlah = "test with no int array", Id = 3
                };

                context.AddUpdateDocument(skillWithIntArray, skillWithIntArray.Id);

                // Save to Elasticsearch
                var ret = context.SaveChanges();
                Assert.Equal(ret.Status, HttpStatusCode.OK);


                var returned = context.GetDocument <SkillWithIntCollection>(3);
                Assert.Equal(skillWithIntArray.BlahBlah, returned.BlahBlah);
                Assert.Null(returned.MyIntArray);
            }
        }
        public void TestDefaultContextParentNestedIntArray()
        {
            using (var context = new ElasticsearchContext(ConnectionString, _elasticsearchMappingResolver))
            {
                context.TraceProvider = new ConsoleTraceProvider();
                var skillWithIntArray = new SkillWithIntArray
                {
                    MyIntArray = new[] { 2, 4, 6, 99, 7 },
                    BlahBlah   = "test3 with int array",
                    Id         = 2
                };
                context.AddUpdateDocument(skillWithIntArray, skillWithIntArray.Id);

                // Save to Elasticsearch
                var ret = context.SaveChanges();
                Assert.Equal(ret.Status, HttpStatusCode.OK);

                var returned = context.GetDocument <SkillWithIntArray>(2);
                Assert.Equal(skillWithIntArray.MyIntArray[2], returned.MyIntArray[2]);
            }
        }
        public void SearchQuerySpanMultiQueryWithRangeQuery()
        {
            var search = new Search
            {
                Query = new Query(
                    new SpanMultiQuery(
                        new RangeQuery("details")
                {
                    GreaterThanOrEqualTo = "one"
                })
                    )
            };

            using (var context = new ElasticsearchContext(ConnectionString, ElasticsearchMappingResolver))
            {
                context.TraceProvider = new ConsoleTraceProvider();
                Assert.True(context.IndexTypeExists <SearchTest>());
                var items = context.Search <SearchTest>(search);
                Assert.Equal(3, items.PayloadResult.Hits.Total);
            }
        }
        public void TearDown()
        {
            using (var context = new ElasticsearchContext(ConnectionString, _elasticsearchMappingResolver))
            {
                context.AllowDeleteForIndex = true;
                if (context.IndexExists <TestSettingsIndex>())
                {
                    context.DeleteIndex <TestSettingsIndex>();
                }

                if (context.IndexExists <TestDfrSimilarity>())
                {
                    context.DeleteIndex <TestDfrSimilarity>();
                }

                if (context.IndexExists <TestBm25Similarity>())
                {
                    context.DeleteIndex <TestBm25Similarity>();
                }
            }
        }