solr .Net端(SolrNet)
首先 引用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)的更多相关文章
- Solr单机部署和集群部署
用到的相关jar包:http://pan.baidu.com/disk/home#list/path=%2Fsolr Solr目录结构 Solr 目录 Contrib :solr 为了增强自身的功能, ...
- Solr与MySQL查询性能对比
本文简单对比下Solr与MySQL的查询性能速度. 测试数据量:10407608 Num Docs: 10407608 这里对MySQL的查询时间都包含了从MySQL Server获取数据的时 ...
- Solr学习总结(七)Solr搜索引擎的整体架构
经过前面一段时间的努力,终于把我所知道的关于solr 的内容都总结完了.前面讲到了solr 的安装配置,web管理后台的使用,solr 的查询参数和查询语法,还说到了solr的客户端 solrnet ...
- 【Solr】solr的增删改查
目录 创建工程 增 删 改 查 高量查询 回到顶部 创建工程 普通的java web工程即可,我采用的是spring mvc! 回到顶部 增 @Autowired private SolrServer ...
- 基于Solr的HBase多条件查询测试
背景: 某电信项目中采用HBase来存储用户终端明细数据,供前台页面即时查询.HBase无可置疑拥有其优势,但其本身只对rowkey支持毫秒级 的快 速检索,对于多字段的组合查询却无能为力.针对HBa ...
- 【转】solr+ajax智能拼音详解---solr跨域请求
本文转自:http://blog.csdn.net/wangzhaodong001/article/details/8529090 最近刚做完solr的ajax智能拼音.总结一下. 前端:jQuery ...
- 浅谈solr
Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口.用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引:也可以通过Http Get操 ...
- solr搜索引擎配置使用mongodb作为数据源
环境说明: 操作系统:由于是使用的docker直接拉取的镜像部署的,系统是LINUX环境 mongodb: 4.0.3 solr: 7.5.0 python: 3.5 配置mongodb 1.拉取mo ...
- solr学习二(ExtractingRequestHandler)
通过ExtractingRequestHandler,slor能够读取word.pdf等文件,并用于全文搜索.废话少说,进入主题: solr服务端是配出来的: solrconfig.x ...
随机推荐
- linux配置禁用启用IPv6
IPv6被认为是IPv4的替代产品,它用来解决现有IPv4地址空间即将耗尽的问题.但目前,开启IPv6可能会导致一些问题.因此有时我们需要关闭IPv6.下面是IPv6的关闭方法应该适用于所有主流的Li ...
- CentOS下设置MySQL的root各种密码 总结
一.更改mysql密码常用的三种方法 大部分情况下,一般用户没有权限更改密码,只有申请了权限或root用户才可以更改密码: 1.方法1:用mysqladmin mysqladmin -u root p ...
- PNotes – 目前最优秀的桌面便签软件 - imsoft.cnblogs
Pnotes: 下载链接: http://pan.baidu.com/s/1o6FK4SM 密码: n7il 便携版,包含中文语音包,包含十几种合适的皮肤. 更多信息:小众软件 http://www. ...
- NeighboringCellInfo.aidl
在src下先建立包名为android.telephony(右键src > new > package,create package-info.java打钩),然后右键刚建的android. ...
- 2018-2019-2 网络对抗技术 20165212 Exp4 恶意代码分析
2018-2019-2 网络对抗技术 20165212 Exp4 恶意代码分析 原理与实践说明 1.实践目标 监控你自己系统的运行状态,看有没有可疑的程序在运行. 分析一个恶意软件,就分析Exp2或E ...
- HashMap Hashtable LinkedHashMap TreeMap
// Map<String, String> map = new HashMap<String, String>(); // bb aa cc Map<String, S ...
- day02 大型互联网架构演变历程笔记 和nigix和keepalived
PS:1.单个进程内,有多个线程,可以共享进程的内存空间2. 进程和进程之间通信比较麻烦, 会涉及 序列化和反序列化 PS :以一个交易网站看网站是如何变大的,网站的发展!!!! PS:随着请求的增加 ...
- 环境搭建之JAVA项目部署步骤
一.配置java环境 1.linux下安装jdk,在此处安装1.7_x64的jdk,解压缩 tar -zxvf xxxxxxx 2.将jdk移动到/usr下 mv java /user/ 3.配置环 ...
- tomcat源码阅读之单点登录
一.SSO概念: 单点登录,Single Sign-On,简写为 SSO,是一个用户认证的过程,允许用户一次性进行认证后,就可访问系统中不同的应用:而无需要访问每个应用时,都重新输入用户和密码. 实现 ...
- 【转】每天一个linux命令(11):nl命令
原文网址:http://www.cnblogs.com/peida/archive/2012/11/01/2749048.html nl命令在linux系统中用来计算文件中行号.nl 可以将输出的文件 ...