之前在学校帮忙做一个项目的时候要用到solr.net 网上一搜发觉与之相关的信息少之又少 所以简单写篇博客介绍一下solr.net 的使用
运行前准备:
1. solr3.6.2 和 tomcat-7.0.40.
2 在 http://code.google.com/p/solrnet/downloads/list 这个网站下载solr.net dll 我是下载1.9m那个版本的 12m那个版本主要是里面有个示例教程 有兴趣可以下载来看看
把里面的solr.net.dll引入到程序中即可.
下面是一个简单的示例. 我是在制作asp.net网站用于与solr连接的 .net 4.0版本
首先在App_Code 中新建一个实体类Entity.cs
代码如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using SolrNet;
using SolrNet.Schema;
using SolrNet.Attributes;
/// <summary>
///Class1 的摘要说明
/// </summary>
public class Entity
{
public Entity()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
[SolrUniqueKey("id")]
public string Id { get; set; }
[SolrField("society_name")]
public string Society_name { get; set; }
[SolrField("sponser_name")]
public string Sponser_name { get; set; }
[SolrField("activity_name")]
public string Activity_name { get; set; }}
这个Entity类包含的是各个属性的 Get Set标准方法 用于与solr里面对应字段的信息交互和修改
SolrUniqueKey 对应就是Solr里面设置的主键
SolrFIled 对应就是Solr里面的各个Filed
用过Hibernate 或者Nhibernate的程序员应该对这段代码很熟悉
定义好这个类之后 回到主程序部分.
/**solr.net链接初始化**/
ISolrOperations<Entity> solr = null;
try
{
solr = ServiceLocator.Current.GetInstance<ISolrOperations<Entity>>();//试图获取Solr并实例化solr变量
}
catch (NullReferenceException exp)
{
Startup.Init<Entity>("localhost/solr/"); //如果尚未与solr连接 先连接
}
这段代码相信不用解释也能明白 就是连接的初始化 等同于与数据库连接
成功连接后 就可以进行赠删操作了
增加:
Entity p = new Entity();
p.Id = id.ToString();
p.Activity_name = activity_title.Text.ToString();
p.Society_name = society_name.Text.ToString();
p.Sponser_name = sponser_name.Text.ToString();
solr.Add(p);
solr.Commit();
首先生成一个Entity 然后给成员赋值
solr.Add(p) 表示把这个Entity增加到Solr里面
删除
solr.Delete("13");
Delete函数只需要提供一个参数 就是要删除记录的UniqueKey的值 一般都是id
一个要注意的地方是 如果这个删除操作不仅要删除Solr的记录 还要删除数据库里面对应的记录
切记要先删除Solr的 后删除数据库 不然会造成数据不同步出错
这里只讲增加和删除的操作 至于查询操作 因为还没用到 所以留待以后再介绍
英文水平好的可以直接查看下载的那个包里面就含有英文的使用介绍