首先

引用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. A+B for Input-Output Practice (VII)

    A+B for Input-Output Practice (VII) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 ...

  2. 统计学(检验、分布)的 python(numpy/pandas/scipy) 实现

    scipy 中统计相关的 api:https://docs.scipy.org/doc/scipy/reference/stats.html https://zhuanlan.zhihu.com/p/ ...

  3. SIM800C SIM卡唯一标识符ICCID

    /******************************************************************************* * SIM800C SIM卡唯一标识符 ...

  4. 【opencv基础】imread-第二个参数

    问题1: 显示的是灰色的界面,不能正常显示图像. 解决方法:在imshow之后加上waitKey即可.原因here: Note:This function should be followed by ...

  5. BZOJ3514: Codechef MARCH14 GERALD07加强版【LCT】【主席树】【思维】

    Description N个点M条边的无向图,询问保留图中编号在[l,r]的边的时候图中的联通块个数. Input 第一行四个整数N.M.K.type,代表点数.边数.询问数以及询问是否加密. 接下来 ...

  6. adnanh webhook 框架 hook rule

    adnanh webhook 支持一系列的逻辑操作 AND 所有的条件都必须匹配 { "and": [ { "match": { "type" ...

  7. WINDOWS FTP命令详解

    FTP命令是Internet用户使用最频繁的命令之一,不论是在DOS还是UNIX操作系统下使用FTP,都会遇到大量的FTP内部命令.熟悉并灵活应用FTP的内部命令,可以大大方便使用者,并收到事半功倍之 ...

  8. Javascript 正则验证带 + 号的邮箱地址

    很多邮箱地址是可以加上 + 加号为同一个邮箱地址. 比如 Gmail. 如果需要验证带 + 号的邮箱,如下: str = "65485+55@gmail.com"; documen ...

  9. 【转】每天一个linux命令(35):ln 命令

    原文网址:http://www.cnblogs.com/peida/archive/2012/12/11/2812294.html ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一 ...

  10. VS2010编译和运行项目错误

    打开工程提示如下: The 'Microsoft.Data.Entity.Design.BootstrapPackage.BootstrapPackage, Microsoft.Data.Entity ...