首先

引用SolrNet.dll 

Microsoft.Practices.ServiceLocation

HttpWebAdapters

也可以用.net IDe 中的 nuget下载 solrnet包

//清除上次请求(不清除会导致重复请求报错)
SolrNet.Startup.Container.Clear();
SolrNet.Startup.InitContainer(); //连接Solr服务器 SolrNet.Startup.Init<Object_acceptanceformsolr>("http://60.205.149.65:8983/solr/connection"); //定义solr
ISolrOperations<Object_acceptanceformsolr> solr = ServiceLocator.Current.GetInstance<ISolrOperations<Object_acceptanceformsolr>>(); //建立排序,条件.
QueryOptions options = new QueryOptions();
options.Rows = ;//数据条数
options.Start = ;//start;//开始项 //创建条件集合
List<ISolrQuery> query = new List<ISolrQuery>(); //创建查询条件(此处可以是单一条件查,或者是分词配置的name名称查找分词下字段所有列里包含的值)
var qTB = new SolrQueryByField("text_search", text_search);
//添加条件
query.Add(qTB); //创建时间范围实例
SolrQueryByRange<DateTime> qDateRange = null; //此处用于查询数据定义的时间范围(没有特殊情况time值0:查询所有数据)
//七天内数据
if (time == "-7")
{
//后两个参数,一个是开始时间,一个是结束时时间
qDateRange = new SolrQueryByRange<DateTime>("createdate", DateTime.Now.AddDays(int.Parse(time)), DateTime.MaxValue);
}
else if (time == "")//所有数据
{
qDateRange = new SolrQueryByRange<DateTime>("createdate", DateTime.MinValue, DateTime.MaxValue);
}
else//其他
{
qDateRange = new SolrQueryByRange<DateTime>("createdate", DateTime.Today.AddMonths(int.Parse(time)), DateTime.MaxValue);
}
query.Add(qDateRange); //一列中多个值得关系 List<ISolrQuery> DepMent = new List<ISolrQuery>();
for (int i = ; i < list.Count; i++)
{
DepMent.Add(new SolrQueryByField("department", list[i].childid));
}
//创建关系,是OR还是AND
var qArea = new SolrMultipleCriteriaQuery(DepMent, "OR");
//添加至条件集合
query.Add(qArea); //此处可以忽略(数组中有多个数组, 判断数组关系与数组内数组的关系) SolrQueryByRange<DateTime> qDateRange = null;
qDateRange = new SolrQueryByRange<DateTime>("createdate", DateTime.MinValue, DateTime.MaxValue);
query.Add(qDateRange);
if (Obj.filter != null && Obj.filter.filters != null && Obj.filter.filters.Count > )
{
List<ISolrQuery> filter = new List<ISolrQuery>();
for (int i = ; i < Obj.filter.filters.Count; i++)
{
if (Obj.filter.filters[i].filters != null && Obj.filter.filters[i].filters.Count > )
{
List<ISolrQuery> filtersli = new List<ISolrQuery>();
for (int n = ; n < Obj.filter.filters[i].filters.Count; n++)
{
filtersli.Add(new SolrQueryByField(Obj.filter.filters[i].filters[n].field, Obj.filter.filters[i].filters[n].value));
}
//创建关系,是OR还是AND
var qAreds = new SolrMultipleCriteriaQuery(filtersli, Obj.filter.filters[i].logic);
query.Add(qAreds); }
else
{
if (Obj.filter.filters[i].field != null && !string.IsNullOrEmpty(Obj.filter.filters[i].field))
{
List<ISolrQuery> filtersli = new List<ISolrQuery>();
filtersli.Add(new SolrQueryByField(Obj.filter.filters[i].field, Obj.filter.filters[i].value));
//创建关系,是OR还是AND
var qAred = new SolrMultipleCriteriaQuery(filtersli, Obj.filter.logic);
query.Add(qAred);
} }
}
} //排序 options.AddOrder(new SolrNet.SortOrder(Obj.sort[i].field, Order.ASC)); //条件集合之间的关系
var qTBO = new SolrMultipleCriteriaQuery(query, "AND"); //执行查询,有5个重载(Solr中SolrConfig中默认wt=json)在取数据时候一直报xml:第一行第一列经过试验我修改了 SolrConfig中的配置wt=xml
SolrQueryResults<Object_acceptanceformsolr> results = solr.Query(qTBO, options); 在请求数据方面要注意大小写一定要与Solr中对应,Solr文件中也一样 //具体Solr配置 请看 http://www.cnblogs.com/wenxinghaha/p/3988375.html

solr .Net端(SolrNet)的更多相关文章

  1. Solr单机部署和集群部署

    用到的相关jar包:http://pan.baidu.com/disk/home#list/path=%2Fsolr Solr目录结构 Solr 目录 Contrib :solr 为了增强自身的功能, ...

  2. Solr与MySQL查询性能对比

    本文简单对比下Solr与MySQL的查询性能速度. 测试数据量:10407608     Num Docs: 10407608 这里对MySQL的查询时间都包含了从MySQL Server获取数据的时 ...

  3. Solr学习总结(七)Solr搜索引擎的整体架构

    经过前面一段时间的努力,终于把我所知道的关于solr 的内容都总结完了.前面讲到了solr 的安装配置,web管理后台的使用,solr 的查询参数和查询语法,还说到了solr的客户端 solrnet  ...

  4. 【Solr】solr的增删改查

    目录 创建工程 增 删 改 查 高量查询 回到顶部 创建工程 普通的java web工程即可,我采用的是spring mvc! 回到顶部 增 @Autowired private SolrServer ...

  5. 基于Solr的HBase多条件查询测试

    背景: 某电信项目中采用HBase来存储用户终端明细数据,供前台页面即时查询.HBase无可置疑拥有其优势,但其本身只对rowkey支持毫秒级 的快 速检索,对于多字段的组合查询却无能为力.针对HBa ...

  6. 【转】solr+ajax智能拼音详解---solr跨域请求

    本文转自:http://blog.csdn.net/wangzhaodong001/article/details/8529090 最近刚做完solr的ajax智能拼音.总结一下. 前端:jQuery ...

  7. 浅谈solr

    Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口.用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引:也可以通过Http Get操 ...

  8. solr搜索引擎配置使用mongodb作为数据源

    环境说明: 操作系统:由于是使用的docker直接拉取的镜像部署的,系统是LINUX环境 mongodb: 4.0.3 solr: 7.5.0 python: 3.5 配置mongodb 1.拉取mo ...

  9. solr学习二(ExtractingRequestHandler)

    通过ExtractingRequestHandler,slor能够读取word.pdf等文件,并用于全文搜索.废话少说,进入主题:     solr服务端是配出来的:     solrconfig.x ...

随机推荐

  1. iOS 开发 Framework

    制作Framework 的好处和缺点 好处:       1.如果模块间接口定义的比较完善,模块化的程序具有很好的可扩展性与内聚性:       2.物理上的模块化便于开发过程的管理与测试,尤其是在程 ...

  2. ping命令技巧详解 windows下ping命令知识大全

    windows ping命令对于多数电脑爱好者都不会陌生,通过ping ip可以知道网络是否畅通或者网络传输质量如何等,是网络技术人员常用的检测网络命令,多数朋友对ping命令知道的并不多,接下来本文 ...

  3. SpringMVC开发小结

    1. 自动封装返回对象为JSON 1).在spring配置文件中添加如下配置: <mvc:annotation-driven> <mvc:message-converters> ...

  4. 更适合程序员使用的Vim配置 显示行号 语法高亮 智能缩进

    在终端下使用vim进行编辑时,默认情况下,编辑的界面上是没有显示行号.语法高亮度显示.智能缩进等功能的.为了更好的在vim下进行工作,需要手动设置一个配置文件:.vimrc.在启动vim时,当前用户根 ...

  5. Codeforces Beta Round #81 A Transmigration

    在魔界战记中有一个设定叫做转生,当一个人物转生时,会保留之前的技能,但是技能等级需要乘以一个系数 k ,如果技能等级小于100,将会在转生之后失去该技能. 转生之后,会学到一些新技能.这些新技能附加的 ...

  6. ZOJ 3551 吸血鬼 概率DP

    解题报告链接: http://www.cnblogs.com/183zyz/archive/2012/09/13/2683524.html 做法:设当有i个吸血鬼时变成n个吸血鬼的天数的数学期望为dp ...

  7. 【poj3169】【差分约束+spfa】

    题目链接http://poj.org/problem?id=3169 题目大意: 一些牛按序号排成一条直线. 有两种要求,A和B距离不得超过X,还有一种是C和D距离不得少于Y,问可能的最大距离.如果没 ...

  8. idea快捷键 好的网址收藏

    http://blog.csdn.net/u010800804/article/details/48491395http://blog.csdn.net/wei83523408/article/det ...

  9. Struts2重学习之作用域的获取

    第一种:获取requestMap,sessionMap,applicationMap, HttpServletRequest,HttpServletResponse对象的获取,在Struts2中 pu ...

  10. vector容器的用法以及动态数组

    vector容器不必去管大小 string申明的数组已经是动态的了 若是int类型的话,需要 cin>>N: int a[N]会出错 ,必须是int *p = new int[N] 然后再 ...