电商指尖---(9).net发展Solr中间Facet特征
2015-07-27 13:28
246 查看
上一节中我们演示了在SolrAdmin中使用Facet功能来进行分组统计。这一节我们看看如何使用.NET开发Solr中的Facet功能。在讲Facet功能的同一时候,
我们看下.Net中如何使用Solr查询。使用的client工具是easysorl.net,大家能够去codeplex下载。
这个工具非常好用。
看例如以下图,下图就是我们要演示的功能
![](http://img.my.csdn.net/uploads/201405/22/1400746425_4158.jpg)
1.模糊查询
模糊查询就是搜索指定的汉字得到一个结果。以下的演示样例就是查询商品名称中包括白色的全部商品,终于得到的结果例如以下图
![](http://img.my.csdn.net/uploads/201405/22/1400746611_6248.jpg)
代码
2.精确查询
在查询的时候,有时候我们要依据商品的ID或者商品的编码精确的查询到某一个商品。
以下的样例就演示了按商品编码精确查询的功能。
![](http://img.my.csdn.net/uploads/201405/22/1400746612_6952.jpg)
3.Facet分组统计
在查询的时候,有的时候。我们须要对查询的结果进行分组。比方想知道包括这个商品的每一个分类有多少商品。每一个价格区间有多少商品。
以下的样例统计每一个分类有多少商品。
![](http://img.my.csdn.net/uploads/201405/22/1400746612_8489.jpg)
Demo下载: http://download.csdn.net/detail/zx13525079024/7385945
我们看下.Net中如何使用Solr查询。使用的client工具是easysorl.net,大家能够去codeplex下载。
这个工具非常好用。
看例如以下图,下图就是我们要演示的功能
![](http://img.my.csdn.net/uploads/201405/22/1400746425_4158.jpg)
1.模糊查询
模糊查询就是搜索指定的汉字得到一个结果。以下的演示样例就是查询商品名称中包括白色的全部商品,终于得到的结果例如以下图
![](http://img.my.csdn.net/uploads/201405/22/1400746611_6248.jpg)
代码
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或者商品的编码精确的查询到某一个商品。
以下的样例就演示了按商品编码精确查询的功能。
![](http://img.my.csdn.net/uploads/201405/22/1400746612_6952.jpg)
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分组统计
在查询的时候,有的时候。我们须要对查询的结果进行分组。比方想知道包括这个商品的每一个分类有多少商品。每一个价格区间有多少商品。
以下的样例统计每一个分类有多少商品。
![](http://img.my.csdn.net/uploads/201405/22/1400746612_8489.jpg)
/// <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
相关文章推荐
- 代码添加背景音乐的日记
- linux初学(六)之linux系统基础
- JVM重要知识点整理和学习
- 利用hadoop+hive+python+qqwry.dat批量解析ip物理地址
- Android Stuidio导入Eclipse的工程文件
- 数据库日记文件的查看与修改
- hdu4277USACO ORZ dfs暴力枚举+map
- HTTP Header 详解
- java纯数字加密解密实例
- iOS searchable 去背景色
- window7 64位 python2.7 安装libsvm和liblinear
- HDU - 2161 - Primes (质数)
- 网站项目系列 第一篇
- Repair U Disk logo unvisiable in task bar on windows XP
- [OpenXml] Generate excel in memory and dump to file
- struct内存对齐
- 树上删边游戏(树上博弈)
- CallableStatement用法
- Lakes.AERMOD.View.v8.9.0 1CD大气扩散模型软件包
- poj 2096 概率dp