前言

       老规矩,任何技术的入门我通常都会总结增删改查,本文我就通过HttpWebRequest和SolrNet的方式实现Solr最基础的增删改查(CURD)。对于自己的完整项目,同时不想过于依赖第三方类库的则通过Http接口的方式来调用Solr。 当然也有人喜欢调用第三方的类库,简单方便,不需要自己处理太多繁琐的细节就可以轻松调用solr来实现自己的业务逻辑。 

      

Http接口实现

private static void Query()
        {
            
            string url = "http://localhost:8080/solr/univeral/select?indent=on&q=title:魔兽&wt=json";

            WebRequest request = WebRequest.Create(url);
            request.Method = "GET";
            WebResponse response = request.GetResponse();

            Stream stream = response.GetResponseStream();
            using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
            {
                string strJson = reader.ReadToEnd();
                Console.WriteLine(strJson);
            }
        }

        private static void Index()
        {
            string url = "http://localhost:8080/solr/univeral/update?_=1466592530544&wt=json&commit=true";

            string strData = @"<add>
                <doc>
                    <field name='id'>2</field>
                    <field name='title'>平凡的世界(根据路遥同名小说改变)</field>
                    <field name='author'>路遥</field>
                </doc>
            </add>";

            byte[] bytes;
            bytes = System.Text.Encoding.UTF8.GetBytes(strData);


            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Method = "POST";
            request.Accept = "*/*";
            request.ContentLength = bytes.Length;
            request.ContentType = "text/xml; encoding='utf-8'";

            Stream requestStream = request.GetRequestStream();
            requestStream.Write(bytes,0,bytes.Length);
            requestStream.Close();


            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            if (response.StatusCode == HttpStatusCode.OK)
            {
                Stream responseStream = response.GetResponseStream();
                string strJson = new StreamReader(responseStream).ReadToEnd();
                Console.WriteLine(strJson);
            }
            

        }

        private static void Delete()
        {
            string url = "http://localhost:8080/solr/univeral/update?_=1466592530544&wt=json&commit=true";

            string strData = @"<delete><id>2</id></delete>";

            byte[] bytes;
            bytes = System.Text.Encoding.ASCII.GetBytes(strData);


            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Method = "POST";
            request.Accept = "*/*";
            request.ContentLength = bytes.Length;
            request.ContentType = "text/xml; encoding='utf-8'";

            Stream requestStream = request.GetRequestStream();
            requestStream.Write(bytes, 0, bytes.Length);
            requestStream.Close();


            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            if (response.StatusCode == HttpStatusCode.OK)
            {
                Stream responseStream = response.GetResponseStream();
                string strJson = new StreamReader(responseStream).ReadToEnd();
                Console.WriteLine(strJson);
            }

        }
View Code

相关文章: