.net+solr的使用从删库到跑路

引用SolrNet.dll,Microsoft.Practices.ServiceLocation.dll,HttpWebAdapters.dll
新建class

		[SolrUniqueKey("id")]
        public string id { get; set; }

        [SolrField("a100")]
        public string a100 { get; set; }

        [SolrField("a001")]
        public string a001 { get; set; }

        [SolrField("a205")]
        public string a205 { get; set; }

简单调用

Startup.Init<Class1>("http://localhost:8080/solr/new_core");
ISolrOperations<Class1> solr = ServiceLocator.Current.GetInstance<ISolrOperations<Class1>>();

                SolrQueryResults<Class1> phoneTaggedArticles = solr.Query(new SolrQuery("id:0060607D78BB4D97AB90C90EE037A276"));

                foreach (Class1 p in phoneTaggedArticles)
                {
                    rt += string.Format("{0}: {1}", p.id, p.a001);
                }

模糊查询,多条件查询

public string search() {

            string rt = "";
            string area = "是,否";
            string time = "0";//七天内 0是所有
            //定义solr
            ISolrOperations<zwfcmd> solr = ServiceLocator.Current.GetInstance<ISolrOperations<zwfcmd>>();

            //建立排序,条件.
            QueryOptions options = new QueryOptions();
            options.Rows = 10;//数据条数
            options.Start = 0;//开始项


            //创建条件集合
            List<ISolrQuery> query = new List<ISolrQuery>();
            var qTB = new SolrQuery("a298:*牢度:旋转*");
            query.Add(qTB);

            //多条件查询
            if (area != "")
            {
                List<ISolrQuery> ar = new List<ISolrQuery>();
                string[] ares = area.Split(new char[] { ',' });
                foreach (string a in ares)
                {
                    //存储
                    ar.Add(new SolrQueryByField("a846", a));
                }
                //创建查询条件之间的关系,是OR还是AND
                var qArea = new SolrMultipleCriteriaQuery(ar, "OR");
                //添加至条件集合
                query.Add(qArea);
            }

            //创建时间范围实例
            SolrQueryByRange<DateTime> qDateRange = null;
            //七天内数据
            if (time == "-7")
            {
                //后两个参数,一个是开始时间,一个是结束时时间
                qDateRange = new SolrQueryByRange<DateTime>("a205", Convert.ToDateTime(DateTime.Now.AddDays(int.Parse(time)).ToString("yyyy-MM-dd")), Convert.ToDateTime(DateTime.MaxValue.ToString("yyyy-MM-dd")));
            }
            else if (time == "0")//所有数据
            {
                qDateRange = new SolrQueryByRange<DateTime>("a205", Convert.ToDateTime(DateTime.MinValue.ToString("yyyy-MM-dd")), Convert.ToDateTime(DateTime.MaxValue.ToString("yyyy-MM-dd")));
            }
            else//其他
            {
                qDateRange = new SolrQueryByRange<DateTime>("a205", Convert.ToDateTime(DateTime.Today.AddMonths(int.Parse(time)).ToString("yyyy-MM-dd")), Convert.ToDateTime(DateTime.MaxValue.ToString("yyyy-MM-dd")));
            }

            //加入集合
            query.Add(qDateRange);


            //按照时间倒排序.
            options.AddOrder(new SolrNet.SortOrder("a205", Order.DESC));


            //条件集合之间的关系
            var qTBO = new SolrMultipleCriteriaQuery(query, "AND");

            //执行查询,有5个重载
            SolrQueryResults<zwfcmd> results = solr.Query(qTBO, options);

            //this.total = results.NumFound;
            //maxNum = total / pageNum + 1;

            Response.Write(t.Count);

            //Result.Columns.Add("id", typeof(string));
            //Result.Columns.Add("title", typeof(string));
            //Result.Columns.Add("columns", typeof(string));
            //Result.Columns.Add("orderColumn", typeof(string));
            //Result.Columns.Add("area", typeof(string));
            //Result.Columns.Add("industry", typeof(string));
            Result.Columns.Add("body", typeof(string));
            //Result.Columns.Add("addDate", typeof(string));
            //Result.Columns.Add("url", typeof(string));

            //foreach (Article article in results)
            //{
            //    string id = article.id.ToString();
            //    string title = article.title;
            //    string orderColumn = article.orderColumn;
            //    string url = "";
            //    DataRow row = this.Result.NewRow();
            //    row["id"] = id;
            //    row["title"] = title;
            //    row["orderColumn"] = article.orderColumn;
            //    row["area"] = article.area;
            //    row["industry"] = article.industry;
            //    //row["body"] = OptimizeHighlight(body, keyword);
            //    row["addDate"] = article.adddate.ToShortDateString();
            //    row["url"] = url;

            //    this.Result.Rows.Add(row);
            //}
            return rt;
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值