SorlNet源码地址:https://github.com/mausch/SolrNet
SolrNet使用说明文档:https://github.com/mausch/SolrNet/tree/master/Documentation
一、创建一个项目控制台程序,并引用SolrNet.dll。Demo下载
注意:SolrNet 依赖HttpWebAdapters.dll和Microsoft.Practices.ServiceLocation.dll 这两个dll 文件,所以,如果编译或者测试有问题,引用这两个dll 文件应该就ok了。
二、在solr 的schema.xml 增加相关的Filed 字段,同时创建一个实体类,与schema.xml中的Filed 字段映射。
同时,schema.xml中也要加上相应的Filed 字段,打开solr_homemycore1conf 下的schema.xml文件,增加如下Field 配置,如果不知道如何操作,请参考前一篇文章,《Solr学习总结(二)Solr的安装与配置》
三、开始调用solrnet:
1.初始化
2.增加和修改索引(document)
Solr 索引的增加和修改,都是Add() 方法,solr 会自动判断是否存在此所以,有就修改,没有就新增。
ISolrOperations<Product> solr = ServiceLocator.Current.GetInstance<ISolrOperations<Product>>();
</span><span style="color:#0000ff;">var</span> p = <span style="color:#0000ff;">new</span><span style="color:#000000;"> Product()
{
id </span>= <span style="color:#800080;">201</span><span style="color:#000000;">,
name </span>= <span style="color:#800000;">"</span><span style="color:#800000;">product 201</span><span style="color:#800000;">"</span><span style="color:#000000;">,
title </span>= <span style="color:#800000;">"</span><span style="color:#800000;">title 201</span><span style="color:#800000;">"</span><span style="color:#000000;">,
category </span>= <span style="color:#800000;">"</span><span style="color:#800000;">201</span><span style="color:#800000;">"</span><span style="color:#000000;">,
content </span>= <span style="color:#800000;">"</span><span style="color:#800000;">title 201 green</span><span style="color:#800000;">"</span><span style="color:#000000;">,
color </span>= <span style="color:#800000;">"</span><span style="color:#800000;">green</span><span style="color:#800000;">"</span><span style="color:#000000;">,
price </span>= <span style="color:#800080;">67.92</span><span style="color:#000000;">,
updatetime </span>= DateTime.Now.AddDays(-<span style="color:#800080;">101</span><span style="color:#000000;">),
orderBy </span>= <span style="color:#800080;">101</span><span style="color:#000000;">
};
solr.Add(p);
solr.Commit();</span>
3. 删除索引
solrnet 重写了多个 delete()方法。这里只介绍一个,其他的自己研究吧。
ISolrOperations<Product> solr = ServiceLocator.Current.GetInstance<ISolrOperations<Product>>();
</span><span style="color:#0000ff;">var</span> p = <span style="color:#0000ff;">new</span><span style="color:#000000;"> Product()
{
id </span>= <span style="color:#800080;">201</span><span style="color:#000000;">,
};
solr.Delete(p);
solr.Commit();</span>
注意:调用 Add() 或是 Delete()方法,必须在他们之后加上 Commit(),否是请求是不会被处理的。
4.查询
ISolrOperations<Product> solr = ServiceLocator.Current.GetInstance<ISolrOperations<Product>><span style="color:#000000;">();
SolrQueryResults</span><Product> phoneTaggedArticles = solr.Query(<span style="color:#0000ff;">new</span> SolrQuery(<span style="color:#800000;">"</span><span style="color:#800000;">id:1</span><span style="color:#800000;">"</span><span style="color:#000000;">));
</span><span style="color:#0000ff;">foreach</span> (Product p <span style="color:#0000ff;">in</span><span style="color:#000000;"> phoneTaggedArticles)
{
Console.WriteLine(</span><span style="color:#0000ff;">string</span>.Format(<span style="color:#800000;">"</span><span style="color:#800000;">{0}: {1}</span><span style="color:#800000;">"</span><span style="color:#000000;">, p.id, p.title));
}
Console.WriteLine();</span>
到这里,Solrnet的基本用法已经说完了,下一篇,将聊聊Solr的一些高级用法,solr 的复杂查询,高亮,Facet分组查询等。