예제 #1
0
파일: Program.cs 프로젝트: jptoto/esdotnet
        static void Main(string[] args)
        {
            elasticSettings = new ConnectionSettings(new Uri("http://127.0.0.1:9200"))
            .SetDefaultIndex("people");

            client = new ElasticClient(elasticSettings);

            client.DeleteIndex("people");

            // Create an index
            client.CreateIndex("people", c => c
                                                  .NumberOfReplicas(0)
                                                  .NumberOfShards(1));

            client.MapFluent<Person>(m => m.IndexAnalyzer("standard")
                                                        .Properties(props => props
                                                            .String(s => s
                                                                .Name(p => p.Message)
                                                                .Index(FieldIndexOption.analyzed))
                                                            .Number(n => n
                                                                .Name(p => p.Age))
                                                            .String(s => s
                                                                .Name(p => p.FirstName))
                                                            .String(s => s
                                                                .Name(p => p.Sex))
                                                            .String(s => s
                                                                .Name(p => p.LastName))));

            //Add some people
            var jp = new Person { FirstName = "JP", LastName = "Smith", Age = 37, Message = "OMG yay ES!", Sex = "Male" };
            var matt = new Person { FirstName = "Matt", LastName = "Toto", Age = 32, Message = "I'm JPs brother", Sex = "Male" };
            var christine = new Person { FirstName = "Christine", LastName = "Toto", Age = 0, Message = "I'm JPs wife", Sex = "Female" };
            var kevin = new Person { FirstName = "Kevin", LastName = "Toto", Age = 26, Message = "I'm JPs other brother", Sex = "Male" };

            client.Index(jp);
            client.Index(matt);
            client.Index(christine);
            client.Index(kevin);

            client.Refresh();

            ///// ** Wildcard search
            var searchResults = client.Search<Person>(s => s
                .From(0)
                .Size(10)
                .Query(q => q
                    .Wildcard(f => f.LastName, "to*", Boost: 1.0)
                )
            );

            foreach (var result in searchResults.Documents)
            {
                Console.WriteLine("Found: {0}", result.FirstName + " " + result.LastName);
            }

            Console.ReadKey();
        }
예제 #2
0
파일: Program.cs 프로젝트: jptoto/esdotnet
        static void Main(string[] args)
        {
            elasticSettings = new ConnectionSettings(new Uri("http://127.0.0.1:9200"))
                .SetDefaultIndex("people");

            client = new ElasticClient(elasticSettings);

            client.DeleteIndex("people");

            // Create an index
            client.CreateIndex("people", c => c
                                    .NumberOfReplicas(0)
                                    .NumberOfShards(1)
                                    .AddMapping<Person>(m => m.MapFromAttributes()));

            // Add some people
            var jp = new Person { FirstName = "JP", LastName = "Toto", Age = 37, Message = "OMG yay ES!", Sex = "Male" };
            var matt = new Person { FirstName = "Matt", LastName = "Toto", Age = 32, Message = "I'm JPs brother", Sex = "Male" };
            var christine = new Person { FirstName = "Christine", LastName = "Toto", Age = 0, Message = "I'm JPs wife", Sex = "Female" };
            var kevin = new Person { FirstName = "Kevin", LastName = "Toto", Age = 26, Message = "I'm JPs other brother", Sex = "Male" };

            client.Index(jp);
            client.Index(matt);
            client.Index(christine);
            client.Index(kevin);

            client.Refresh();

            var searchResults = client.Search<Person>(s => s
                .From(0)
                .Size(10)
                .Fields(f => f.FirstName, f => f.LastName)
                .Query(q => q
                    .MatchPhrase(j => j.OnField("Message").QueryString("i'm jps brother"))
                )
            );

            foreach (var result in searchResults.Documents)
            {
                Console.WriteLine("Found: {0}", result.FirstName + " " + result.LastName);
            }

            Console.ReadKey();
        }
예제 #3
0
파일: Program.cs 프로젝트: jptoto/esdotnet
        static void Main(string[] args)
        {
            elasticSettings = new ConnectionSettings(new Uri("http://127.0.0.1:9200"))
                .SetDefaultIndex("people");

            client = new ElasticClient(elasticSettings);

            // Create an index
            client.CreateIndex("people", c => c
                                                    .NumberOfReplicas(0)
                                                    .NumberOfShards(4)
                                                    .AddMapping<Person>(m => m.MapFromAttributes()));

            // Add some people
            var jp = new Person {FirstName = "JP", LastName = "Smith", Age = 37, Message = "OMG yay ES!", Sex = "Male"};
            var matt = new Person { FirstName = "Matt", LastName = "Toto", Age = 32, Message = "I'm JPs brother", Sex = "Male" };
            var christine = new Person { FirstName = "Christine", LastName = "Toto", Age = 0, Message = "I'm JPs wife", Sex = "Female" };
            var kevin = new Person { FirstName = "Kevin", LastName = "Toto", Age = 26, Message = "I'm JPs other brother", Sex = "Male" };

            client.Index(jp);
            client.Index(matt);
            client.Index(christine);
            client.Index(kevin);
        }
예제 #4
0
파일: Program.cs 프로젝트: jptoto/esdotnet
        static void Main(string[] args)
        {
            elasticSettings = new ConnectionSettings(new Uri("http://127.0.0.1:9200"))
            .SetDefaultIndex("people");

            client = new ElasticClient(elasticSettings);

            client.DeleteIndex("people");

            // Create an index
            client.CreateIndex("people", c => c
                                                  .NumberOfReplicas(0)
                                                  .AddMapping<Person>(m => m.MapFromAttributes())
                                                  .NumberOfShards(1));

            //client.MapFluent<Person>(m => m.IndexAnalyzer("standard")
            //                                            .Properties(props => props
            //                                                .String(s => s
            //                                                    .Name(p => p.Message)
            //                                                    .Index(FieldIndexOption.analyzed))
            //                                                .Number(n => n
            //                                                    .Name(p => p.Age))
            //                                                .String(s => s
            //                                                    .Name(p => p.FirstName))
            //                                                .String(s => s
            //                                                    .Name(p => p.Sex))
            //                                                .String(s => s
            //                                                    .Name(p => p.LastName))));

            // Add some people
            var jp = new Person { FirstName = "JP", LastName = "Toto", Age = 37, Message = "OMG yay ES!", Sex = "Male" };
            var matt = new Person { FirstName = "Matt", LastName = "Toto", Age = 37, Message = "I'm JPs brother", Sex = "Male" };
            var christine = new Person { FirstName = "Christine", LastName = "Toto", Age = 0, Message = "I'm JPs wife", Sex = "Female" };
            var kevin = new Person { FirstName = "Kevin", LastName = "Smith", Age = 26, Message = "I'm JPs other brother", Sex = "Male" };

            client.Index(jp);
            client.Index(matt);
            client.Index(christine);
            client.Index(kevin);

            client.Flush(true);

            var results = client.Search<Person>(s => s
                            .MatchAll()
                            .FacetStatistical(fs => fs
                                .OnField(f => f.Age)
                            ));

            var facet = results.Facet<StatisticalFacet>(f => f.Age);

            Console.WriteLine("Statistical Facets");
            Console.WriteLine("");
            Console.WriteLine("Max: {0}", facet.Max);
            Console.WriteLine("Min: {0}", facet.Min);
            Console.WriteLine("Std Dev: {0}", facet.StandardDeviation);
            Console.WriteLine("Total: {0}", facet.Total);

            Console.ReadKey();

            Console.Clear();

            Console.WriteLine("Histogram Facets");
            Console.WriteLine("");
            var facetResults = client.Search<Person>(s => s
                            .MatchAll()
                            .FacetHistogram(fs => fs
                                .OnField(f => f.Age)
                                .Interval(1)
                            ));

            var facet2 = facetResults.Facet<HistogramFacet>(f => f.Age);

            foreach (var item in facet2.Items)
            {
                Console.WriteLine("Key: {0}  Count: {1}", item.Key, item.Count);
            }

            Console.ReadKey();

            Console.Clear();

            Console.WriteLine("Term Facets");
            Console.WriteLine("");
            var facetResults2 = client.Search<Person>(s => s
                .From(0)
                .Size(10)
                .MatchAll()
                .FacetTerm(t => t.OnField(f => f.LastName).Size(20))
            );

            var facet3 = facetResults2.Facet<TermFacet>(f => f.LastName);
            foreach (var item in facet3.Items)
            {
                Console.WriteLine("Key: {0}  Count: {1}", item.Term, item.Count);
            }

            Console.ReadKey();
        }
예제 #5
0
파일: Program.cs 프로젝트: jptoto/esdotnet
        static void Main(string[] args)
        {
            elasticSettings = new ConnectionSettings(new Uri("http://127.0.0.1:9200"))
                .SetDefaultIndex("people");

            client = new ElasticClient(elasticSettings);

            client.DeleteIndex("people");

            // Create an index

            client.MapFluent<Person>(m => m.IndexAnalyzer("standard")
                                                        .Properties(props => props
                                                            .String(s => s
                                                                .Name(p => p.Message)
                                                                .Index(FieldIndexOption.analyzed))
                                                            .Number(n => n
                                                                .Name(p => p.Age))
                                                            .String(s => s
                                                                .Name(p => p.FirstName))
                                                            .String(s => s
                                                                .Name(p => p.Sex))
                                                            .String(s => s
                                                                .Name(p => p.LastName))));

            // Add some people
            var jp = new Person { FirstName = "JP", LastName = "Smith", Age = 37, Message = "OMG yay ES!", Sex = "Male" };
            var matt = new Person { FirstName = "Matt", LastName = "boosting", Age = 32, Message = "test", Sex = "Male" };
            var christine = new Person { FirstName = "Christine", LastName = "Toto", Age = 0, Message = "I'm JPs wife", Sex = "Female" };
            var kevin = new Person { FirstName = "Kevin", LastName = "boosting", Age = 26, Message = "I'm JPs other boosting", Sex = "Male" };

            client.Index(jp);
            client.Index(matt);
            client.Index(christine);
            client.Index(kevin);

            client.Refresh();

            ///// ** Basic search with QueryString
            var searchResults = client.Search<Person>(s => s.Query(q => q.
                            QueryString(x => x.Query("boosting"))));

            foreach (var result in searchResults.Documents)
            {
                Console.WriteLine("Found: {0}", result.FirstName + " " + result.LastName);
            }

            Console.ReadKey();

            // Boosting

            client.DeleteIndex("people");

            // Create an index

            client.MapFluent<Person>(m => m.IndexAnalyzer("standard")
                                                        .Properties(props => props
                                                            .String(s => s
                                                                .Name(p => p.Message)
                                                                .Index(FieldIndexOption.analyzed).Boost(2.0))
                                                            .Number(n => n
                                                                .Name(p => p.Age))
                                                            .String(s => s
                                                                .Name(p => p.FirstName))
                                                            .String(s => s
                                                                .Name(p => p.Sex))
                                                            .String(s => s
                                                                .Name(p => p.LastName))));

            // Add some people
            var jp1 = new Person { FirstName = "JP", LastName = "Smith", Age = 37, Message = "OMG yay ES!", Sex = "Male" };
            var matt1 = new Person { FirstName = "Matt", LastName = "boosting", Age = 32, Message = "boosting", Sex = "Male" };
            var christine1 = new Person { FirstName = "Christine", LastName = "Toto", Age = 0, Message = "I'm JPs wife", Sex = "Female" };
            var kevin1 = new Person { FirstName = "Kevin", LastName = "boosting", Age = 26, Message = "I'm JPs other test", Sex = "Male" };

            client.Index(jp1);
            client.Index(matt1);
            client.Index(christine1);
            client.Index(kevin1);

            client.Refresh();

            ///// ** Basic search with QueryString
            var searchResults2 = client.Search<Person>(s => s.Query(q => q.
                            QueryString(x => x.Query("boosting"))));

            foreach (var result in searchResults2.Documents)
            {
                Console.WriteLine("Found: {0}", result.FirstName + " " + result.LastName);
            }

            Console.ReadKey();
        }