solr与.net系列课程(五)solrnet的使用
2021-03-13 02:31
标签:startup 北京 成功 operation spl 一段 ble desc info 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="上海") and industry="电力" and columns="项目" order time desc (1)创建一个接收数据的实体类,内容如下 SolrUniqueKey对应solr的唯一键,SolrField对应接收的字段 (2) 创建Global.asax加入如下代码 引用using SolrNet; Startup.Init("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 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; }
}
}
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("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 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 solr = ServiceLocator.Current.GetInstance