国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

solr與.net系列課程(五)solrnet的使用

2019-11-17 01:48:54
字體:
來源:轉載
供稿:網友

solr與.net系列課程(五)solrnet的使用

solr與.net系列課程(五)solrnet的使用

最近因項目比較忙,所以這篇文章出的比較晚,離上一篇文章已經有半個月的時間了,這節課我們來學下一下solr的.net客戶端solrnet

出處https://github.com/mausch/SolrNet

上一篇文章講述了C#是如何請求和接受solr的數據的,請求鏈接是自己拼接的,接受數據是使用數據契約,solrnet就是把這些步驟封裝起來,大家直接調用方法就可以請求和接受數據

首先要下載solrnet所要使用的DLL

Microsoft.PRactices.ServiceLocation.dll

SolrNet.dll

HttpWebAdapters.dll

下載地址http://pan.baidu.com/s/1pJt7Wr5

創建一個項目,然后引用上面的DLL

好了,下面就開始實戰, 我們來設計一個查詢條件 title="關鍵字" and (area="北京" or area="上海") andindustry="電力" andcolumns="項目" order time desc

(1)創建一個接收數據的實體類,內容如下

using System;using System.Collections.Generic;using System.Linq;using System.Web;using SolrNet.Attributes;namespace Webapplication5{    public class Article    {        [SolrUniqueKey("id")]        public int id { get; set; }        [SolrField("title")]        public string title { get; set; }        [SolrField("area")]        public string area { get; set; }        [SolrField("industry")]        public string industry { get; set; }        [SolrField("body")]        public string body { get; set; }        [SolrField("adddate")]        public DateTime adddate { get; set; }        [SolrField("columns")]        public string columns { get; set; }        [SolrField("sorts")]        public string sorts { get; set; }        [SolrField("url")]        public string url { get; set; }        [SolrField("orderColumn")]        public string orderColumn { get; set; }    }}

SolrUniqueKey對應solr的唯一鍵,SolrField對應接收的字段

(2) 創建Global.asax加入如下代碼

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Security;using System.Web.sessionState;using SolrNet;namespace WebApplication5{    public class Global : System.Web.HttpApplication    {        protected void Application_Start(object sender, EventArgs e)        {            Startup.Init<Article>("http://192.168.0.14:8080/solr/collection1");        }        protected void Session_Start(object sender, EventArgs e)        {        }        protected void Application_BeginRequest(object sender, EventArgs e)        {        }        protected void Application_AuthenticateRequest(object sender, EventArgs e)        {        }        protected void Application_Error(object sender, EventArgs e)        {        }        protected void Session_End(object sender, EventArgs e)        {        }        protected void Application_End(object sender, EventArgs e)        {        }    }}

引用using SolrNet;

Startup.Init<Article>("http://192.168.0.14:8080/solr/collection1"); 請求solr服務器的地址

(3)我們開始使用solrnet,創建一個aspx頁面,先看代碼在然后再解釋每個方法的含義

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using SolrNet;using SolrNet.Commands.Parameters;using System.Text;using System.Data;using System.Text.RegularExpressions;using Microsoft.Practices.ServiceLocation;namespace WebApplication5{    public partial class _Default : System.Web.UI.Page    {        public DataTable Result = new DataTable();        public int total;        public int maxNum;        public int pageNum = 36;        protected void Page_Load(object sender, EventArgs e)        {            Search("上海", "北京,上海", "電力", "項目", 1, "0");                  }        public void Search(string keyWord, string area, string industry, string columns, int start, string time)        {            //定義solr            ISolrOperations<Article> solr = ServiceLocator.Current.GetInstance<ISolrOperations<Article>>();            //建立排序,條件.            QueryOptions options = new QueryOptions();            options.Rows = pageNum;//數據條數            options.Start = start;//開始項                    //創建查詢條件            var qTB = new SolrQueryByField("title", keyword);            //創建條件集合            List<ISolrQuery> query = new List<ISolrQuery>();            //添加條件            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("area", a));                }                //創建地區之間的關系,是OR還是AND                var qArea = new SolrMult

我們來一段段分析上面的代碼

創建solr實例,最終使用這個去執行命令

     ISolrOperations<Article> solr = ServiceLocator.Cu
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 若羌县| 达州市| 新竹县| 辰溪县| 南丹县| 聂荣县| 新竹县| 聂荣县| 赣州市| 阳泉市| 牟定县| 七台河市| 开封县| 丹阳市| 定西市| 莲花县| 永胜县| 昭苏县| 云和县| 黄山市| 县级市| 宝清县| 松江区| 大洼县| 黄大仙区| 湟中县| 康定县| 栾川县| 南开区| 孟村| 新竹市| 同江市| 夏河县| 繁峙县| 色达县| 武威市| 景洪市| 略阳县| 景泰县| 禹州市| 依安县|