Index() 공개 메소드

public Index ( string index, IEnumerable indexItems ) : ElasticSearch.Client.Domain.OperateResult
index string
indexItems IEnumerable
리턴 ElasticSearch.Client.Domain.OperateResult
예제 #1
0
		public void SimpleTests()
		{
			var indexName = "myindex_" + Guid.NewGuid();
			var indexType = "type";

			var client = new ElasticSearchClient("localhost");

			var result = client.Index(indexName, indexType, "testkey", "{\"a\":\"b\",\"c\":\"d\"}");
			Assert.AreEqual(true, result.Success);

			client.Refresh(indexName);

			var doc = client.Search(indexName, indexType, "c:d");
			Console.WriteLine(doc.Response);
			Assert.AreEqual(1, doc.GetHits().Hits.Count);
			Assert.AreEqual("b", doc.GetHits().Hits[0].Source["a"]);

			client.Delete(indexName, indexType, "testkey");

			client.Refresh(indexName);

			var doc1 = client.Get(indexName, indexType, "testkey");
			Assert.AreEqual(null,doc1);

			client.DeleteIndex(indexName);
		}
예제 #2
0
		static void Main(string[] args)
		{
			var client = new ElasticSearchClient("10.129.8.58",9500,TransportType.Thrift);
			int failure = 0;

			var data = "{\"book\": \"The Hitchhiker's Guide to the Galaxy\"" +
                ",\"id\":"+1+
			           ",\"chapter\": \"Chapter 11\",\"text1\": \"All the doors in this spaceship have a cheerful and sunny disposition. It is their pleasure to open for you, and their satisfaction to close again with the knowledge of a job well done.\"}";
			client.Index("benchmark_test", "default", Guid.NewGuid().ToString(), data);

			int count = int.Parse(args[0]);

			var begin = DateTime.Now;
			for (var i = 0; i < count; i++)
			{
                data = "{\"book\": \"The Hitchhiker's Guide to the Galaxy\"" +
                ",\"id\":" + i +
                       ",\"chapter\": \"Chapter 11\",\"text1\": \"All the doors in this spaceship have a cheerful and sunny disposition. It is their pleasure to open for you, and their satisfaction to close again with the knowledge of a job well done.\"}";
                client.Index("benchmark_test", "default", Guid.NewGuid().ToString(), data);

				var response = client.Index("benchmark_test", "default", Guid.NewGuid().ToString(), data);
				if (!response.Success)
				{
					failure++;
				}
			}
			var end = DateTime.Now;

			var timespan = end - begin;

			var avg = timespan.TotalMilliseconds / count;
			Console.WriteLine("iteration:{0},failure:{3},elapsed time:{1},avg time:{2}ms", count, timespan, avg, failure);

			client.DeleteIndex("benchmark_test");

			Console.Write("Press any key to continue . . . ");
			Console.ReadKey(true);
		}
예제 #3
0
        public void AllInOne()
        {
            string indexType = "v1";

            var dict = new Dictionary <string, object>();

            dict.Add("age", 22);
            var result = client.Index(app, indexType, "key1", dict);

            Assert.AreEqual(true, result.Success);

            var indexItem1 = new IndexItem("testKey");

            indexItem1.Add("age", 21);
            result = client.Index(app, indexItem1);
            Assert.AreEqual(true, result.Success);

            var indexItem = new IndexItem(indexType, "key2");

            indexItem.Add("age", 23);
            result = client.Index(app, indexItem);
            Assert.AreEqual(true, result.Success);

            client.Refresh();
            var count = client.Count(app, indexType, ExpressionEx.Eq("age", 25));

            Assert.AreEqual(0, count);

            count = client.Count(app, indexType, Conditional.Get(ExpressionEx.Eq("age", 22)));
            Assert.AreEqual(1, count);
            count = client.Count(app, indexType, Conditional.Get(ExpressionEx.Eq("age", 23)));
            Assert.AreEqual(1, count);

            count = client.Count(app, indexType, Conditional.Get(ExpressionEx.Between("age", 22, 23, true)));
            Assert.AreEqual(2, count);

            //a coplex example
            var cond1 = Conditional.Get(ExpressionEx.Eq("name", "jack"))
                        .And(ExpressionEx.Between("age", 22, 30))
                        .And(ExpressionEx.Fuzzy("address", "beijing", 1.0f, 4))
                        .And(ExpressionEx.Le("no", 87));
            Conditional cond2 = Conditional.Or(cond1, Conditional.Not(ExpressionEx.Eq("gender", "male")));

            client.Search("index", "type", cond2.Query);
        }
        public void TestHighlight()
         {
             ElasticSearch.Client.ElasticSearchClient client=new ElasticSearchClient("localhost",9200,TransportType.Http);


             string indexName = Guid.NewGuid().ToString();


             client.CreateIndex(indexName);


             TypeSetting type=new TypeSetting("type");
             type.AddStringField("title").Analyzer = "whitespace";
             type.AddStringField("snippet").Analyzer = "whitespace";
             client.PutMapping(indexName, type);

             //index sample
             Dictionary<string, object> dict=new Dictionary<string, object>();
             dict["title"] = "quick fox jump away";
             dict["snippet"] = "quick fox jump away,where are you?";
             client.Index(indexName, "type", "1", dict);
             
             dict=new Dictionary<string, object>();
             dict["title"] = "fox river is nearby";
             dict["snippet"] = "where is fox river,where is it?";
             client.Index(indexName, "type", "2", dict);

   
             ElasticQuery query=new ElasticQuery(
                 new QueryStringQuery("fox")
                 .AddField("title",5)
                 .AddField("snippet",5),null,0,5 );

             query.AddHighlightField(new HightlightField("title"));
             query.AddHighlightField(new HightlightField("snippet"));

             client.Refresh(indexName);

             var result= client.Search(indexName, query);
             Console.Out.WriteLine(result.Query);
             Console.Out.WriteLine(result.Response);

             Console.Out.WriteLine("---");
             HitStatus hits = result.GetHits();
             if (hits != null)
                 foreach (var o in hits.Hits)
                 {
                     foreach (var pair in o.Highlight)
                     {
                         Console.Out.WriteLine(pair.Key + ":");
                         foreach (var field in pair.Value)
                         {
                             Console.Out.WriteLine(field);
                         }

                         Console.Out.WriteLine();
                     }
                 
                 }


             client.DeleteIndex(indexName);
         }