麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

solr.net的使用

2019-11-14 14:01:18
字體:
來源:轉載
供稿:網友

引子

 最近在做一個日志系統,用普通關系型數據庫做數據查詢遇到了查詢的瓶頸,想到了用成熟的搜索應用服務,我所知道的比較成熟的搜索應用服務有solr和es(elasticsearch),由于時間比較倉促,最后選擇了比較熟悉的solr。

簡介SOLR

Solr是一個高性能,采用java5開發,Solr基于Lucene的全文搜索服務器。同時對其進行了擴展,提供了比Lucene更為豐富的查詢語言,同時實現了可配置、可擴展并對查詢性能進行了優化,并且提供了一個完善的功能管理界面,是一款非常優秀的全文搜索引擎,他是基于Lucene的封裝比較成熟的全文搜索服務器。solr怎樣部署在windows服務器上的,推薦一枚信峰的博客http://www.companysz.com/wenxinghaha/tag/.net%20%20solr/,他這里寫的比較詳細。solr的5.0目前不支持IK分詞,所以只好使用4.10版本,solr 的部署也比較方便,再部署的時間可以通過配置文件將數據庫的數據索引到solr服務器內,并且能根據索引時間定時的同步數據到solr服務器。

solr在.NET中的驅動

我們在做查詢的時間是使用過的C#語言,所以要用到solr在.NET中的驅動,目前比較流行的有solr.NET和easynet.solr,solr.NET是一個比較穩定的開源的solr驅動,easynet.solr是國內一同行在solr.NET上面做了封裝,我采用的是最原生的solr.net,驅動下載地址https://github.com/mausch/SolrNet。由于solr服務器是提供restful接口的操作的,所以solrnet對于solr服務的請求其實還是基于http請求的

solrnet的應用

solrnet的應用我就做過多的說明了,在這里我主要是想說一下solrnet的分組查詢

附代碼

 public  class SolrNetOperate    {        static SolrNetOperate()        {            Startup.Init<LogItems>("http://000.000.000.000:8080/solr/logs");        }        /// <summary>        /// </summary>        /// <param name="dictPars">查詢參數字典</param>        /// <param name="start">分頁開始標識</param>        /// <param name="rows">每頁數量</param>        /// <param name="startTime">開始時間</param>        /// <param name="endTime">結束時間</param>        /// <param name="count">輸出參數 總個數</param>        /// <returns></returns>        /// <remarks>oldman 2015年7月23日14:11:43</remarks>        public static List<int> GroupingSerach(Dictionary<string, string> dictPars, int start, int rows,            DateTime startTime, DateTime endTime, out int count)        {            //定義solr            var solr = ServiceLocator.Current.GetInstance<ISolrOperations<LogItems>>();            var queryOptions = new QueryOptions();            //定義分組            var groupingParameters = new GroupingParameters();            groupingParameters.Fields = new Collection<string> { "logs_id" };            groupingParameters.Ngroups = true; //設置查詢分組的總個數為true            //定義過濾條件            var timeRange = new SolrQueryByRange<DateTime>("logs_time", startTime, endTime);            queryOptions.AddFilterQueries(timeRange);            foreach (string key in dictPars.Keys)            {                queryOptions.AddFilterQueries(new SolrQueryByField(key, dictPars[key]));            }            //定義排序            queryOptions.OrderBy = new Collection<SortOrder> { new SortOrder("logs_id", Order.DESC) };            queryOptions.Grouping = groupingParameters;            queryOptions.Start = start;            queryOptions.Rows = rows;            SolrQueryResults<LogItems> res = solr.Query(SolrQuery.All, queryOptions);            GroupedResults<LogItems> items = res.Grouping["logs_id"];            count = items.Ngroups ?? 0;            return items.Groups.Select(item => Convert.ToInt32(item.GroupValue)).ToList();        }    }

這里是分組后做查詢,排序和分頁,代碼很清晰,有問題可以和我交流

附帶源碼:https://github.com/lipeng1991/SolrDemo

本人的.NET學習技術交流群:226704167

努力學習,只為一個夢想。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 午夜精品成人一区二区 | av日韩在线免费观看 | 日韩视频一区二区在线观看 | 欧美一级特黄特色大片免费 | 日韩剧情片 | xvideos korean| 女人久久久www免费人成看片 | 国产精品麻豆一区二区三区 | av手机在线免费播放 | 国产小视频一区 | 欧产日产国产精品乱噜噜 | 国产日韩大片 | av在线免费看网址 | 国产精品999在线观看 | 午夜精品久久久久久久爽 | 国产精品一区在线免费观看 | 成人18在线 | 成人视屏在线 | 日本娇小videos高潮 | 精品久久一区二区三区 | 日韩精品久久久久久久九岛 | 99久久精品免费 | 一区播放 | 久久精品视频1 | 羞羞视频免费网站男男 | 亚洲福利在线视频 | 久久精品一级片 | 国产精品91在线 | 色999中文字幕 | 国产成人精品午夜视频' | 日韩毛片网 | 欧美人禽| 人人舔人人插 | 日本视频在线免费观看 | 91一区二区在线观看 | 一本在线高清码电影 | 欧美999| 欧美成人免费看 | 国产羞羞视频在线观看 | 色a综合 | 中国3xxxx|