上一节中我们演示了在SolrAdmin中使用Facet功能来进行分组统计。这一节我们看看如何使用.NET开发Solr中的Facet功能。在讲Facet功能的同一时候,

我们看下.Net中如何使用Solr查询。使用的client工具是easysorl.net,大家能够去codeplex下载。

这个工具非常好用。

看例如以下图,下图就是我们要演示的功能

  1.模糊查询

模糊查询就是搜索指定的汉字得到一个结果。以下的演示样例就是查询商品名称中包括白色的全部商品,终于得到的结果例如以下图

代码

        public void Query()
{ if (string.IsNullOrWhiteSpace(textBox1.Text.Trim()))
{
#region 查询所有 var result = operations.Query("collection1", "/select", SolrQuery.All, null);
var header = binaryResponseHeaderParser.Parse(result);
var examples = binaryQueryResultsParser.Parse(result);
this.dataGridView1.DataSource = examples.ToList(); #endregion
}
else
{
#region 按商品名模糊查询 ISolrQuery solrQuery = new SolrQuery(textBox1.Text.Trim());
var result = operations.Query("collection1", "/select", solrQuery, null);
var header = binaryResponseHeaderParser.Parse(result);
var examples = binaryQueryResultsParser.Parse(result);
this.dataGridView1.DataSource = examples.ToList(); #endregion }
}

2.精确查询

在查询的时候,有时候我们要依据商品的ID或者商品的编码精确的查询到某一个商品。

以下的样例就演示了按商品编码精确查询的功能。

   if (string.IsNullOrWhiteSpace(textBox2.Text.Trim()))
{
return;
}
string conditon = "ProductCode:" + textBox2.Text.Trim();
ISolrQuery solrQuery = new SolrQuery(conditon);
var result = operations.Query("collection1", "/select", solrQuery, null);
var header = binaryResponseHeaderParser.Parse(result);
var examples = binaryQueryResultsParser.Parse(result);
this.dataGridView1.DataSource = examples.ToList();

3.Facet分组统计

在查询的时候,有的时候。我们须要对查询的结果进行分组。比方想知道包括这个商品的每一个分类有多少商品。每一个价格区间有多少商品。

以下的样例统计每一个分类有多少商品。

 /// <summary>
/// facet按类型查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button3_Click(object sender, EventArgs e)
{
label3.Visible = true; var dic=new Dictionary<string,ICollection<string>>();
dic["facet"] = new string[] { "true" }; var options = new List<string>();
options.Add("CategoryName");
dic["facet.field"] = options;
var result = operations.Query("collection1", "/select", SolrQuery.All,dic);
var header = binaryResponseHeaderParser.Parse(result);
var examples = binaryQueryResultsParser.Parse(result); //分组List<FacetField>
IDictionary<string, IList<FacetField>> facetDic=new BinaryFacetFieldsParser().Parse(result);
string strFacet = "";
foreach (var item in facetDic)
{
strFacet +="分组字段:"+item.Key+"\r\n";
foreach (var facetItem in item.Value)
{
strFacet += facetItem.Name + "(" + facetItem.Count.ToString() + ")" + "---";
}
}
label3.Text = strFacet;
this.dataGridView1.DataSource = examples.ToList();
}

Demo下载: http://download.csdn.net/detail/zx13525079024/7385945

 

版权声明:本文博客原创文章,博客,未经同意,不得转载。

电商指尖---(9).net发展Solr中间Facet特征的更多相关文章

  1. 电商指尖---(6)solrconfig.xml配置具体解释

    solrconfig.xml配置文件主要定义SOLR理规则,包含索引数据的存放位置,更新,删除,查询的一些规则配置. 能够在tomcat的安装路径下找到这个文件C:\Program Files\Apa ...

  2. 关于电商ERP的想法

    原文地址: http://www.chinaodoo.net/thread-465-1-1.html 试用了下odoo的淘宝订单处理模块,从整个业务流程上已经打通,如果要求不是很高的话,现有的功能基本 ...

  3. 把握这两点,抢占下一个电商风口|2016最新中国电商App排名&研究报告

    序言 电商,是随着中国互联网经济的持续发展所成长起来的.淘宝.京东这些电商从交易额和影响力上看都位列中国最为成功.最具话题性的互联网企业之中.尽管近几年中国经济有所放缓,但中国消费市场的增长速度仍有望 ...

  4. 专訪印度电商Snapdeal CEO:学阿里还是京东

    [摘要]印度的互联网正成资本关注下一个投资焦点,也可能成中国互联网企业走向海外的桥头堡.为此.腾讯科技最近将推出走近印度"硅谷"系列文章,帮助大家了解印度互联网. 腾讯科技与Sna ...

  5. Golang 在电商即时通讯服务建设中的实践

    马蜂窝技术原创文章,更多干货请搜索公众号:mfwtech ​即时通讯(IM)功能对于电商平台来说非常重要,特别是旅游电商. 从商品复杂性来看,一个旅游商品可能会包括用户在未来一段时间的衣.食.住.行等 ...

  6. 中国社交电商最新展望,S-KOL-C正突围而出

    编辑 | 韩星 出品 | 于见(mpyujian) 通信技术.移动互联网的快速发展正加速国内电商平台的深度变革. 在这场以"社交"和"下沉市场"为关键词的电商之 ...

  7. 短视频APP+不同类型社交应用发展分析+化妆品电商

    短视频APP——昙花一现还是发展趋势? 在这个互联网与科技并行且飞速发展的时代,各种app不断涌入市场,其中短视频app便是一个典型,美拍,就成功入围2014年十大最火app.而短视频app也势必要成 ...

  8. solr在电商平台中的使用示例简析

    来源:http://blog.csdn.net/yangbutao/article/details/9450463 在电商平台中搜索是非常重要的功能,主要包括有搜索词类目导航.自动提示和搜索排序功能 ...

  9. JAVAEE——Solr:安装及配置、后台管理索引库、 使用SolrJ管理索引库、仿京东的电商搜索案例实现

    1 学习回顾 1. Lucene  是Apache开源的全文检索的工具包 创建索引 查询索引 2. 遇到问题? 文件名 及文件内容  顺序扫描法  全文检索 3. 什么是全文检索? 这种先创建索引 再 ...

随机推荐

  1. XUtils骨架HttpUtils采用Get总是返回请求解决问题的相同信息

    如需转载请注明出处:http://blog.csdn.net/itas109 版本号:Xutils 2014年11月11日 下载地址:https://github.com/wyouflf/xUtils ...

  2. 让struts2和servlet共存

    由于struts2默认的是拦截全部的请求 由配置文件能够看出 <filter> <filter-name>struts2</filter-name> <fil ...

  3. T-SQL问题解决集锦——数据加解密

    原文:T-SQL问题解决集锦--数据加解密 以下代码已经在SQLServer2008上的示例数据库测试通过 问题一:如何为数据进行加密与解密,避免使用者窃取机密数据? 对于一些敏感数据,如密码.卡号, ...

  4. RFC 协议下载方法

    rfc官方网站:http://tools.ietf.org 举例说明: RFC7230是HTTP 1.1协议,此文档的URL为:http://tools.ietf.org/html/rfc7230 你 ...

  5. ASP.NET MVC常见问题解决方法

    1.页面报错: The following errors occurred while attempting to load the app. - No assembly found containi ...

  6. Appium - iOS Mac环境结构

    Appium - iOS Mac环境结构 笔者: Max.Bai 时间: 2014/10 1. iOS开发环境的搭建 1.1系统要求 MacOS X 10.7 or higher, 10.9.2 re ...

  7. css3 翻牌(rotate) 以及翻转 导致边缘锯齿解决 方法

     主要知识点:rotate旋转以及  outline透明的像素消除(明显降低)火狐旋转是产生的 锯齿  首先看结构: <li class="flip-container " ...

  8. Android采访开发——2.通用Android基础笔试题

    注意finddreams博客: http://blog.csdn.net/finddreams/article/details/44219231 正值跳槽的热季.整理一下Android面试中最常考的笔 ...

  9. DDD Reference

    版权声明:本文博客原创文章.博客,未经同意,不得转载.

  10. 国产与第三方库FFmpeg SDK

    一个.编译并安装第三方库 1. libfaac # tar -zxvf faac-1.28.tar.gz # cd faac-1.28 # ./configure --prefix=/opt/YOUR ...