博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
电商指尖---(9).net发展Solr中间Facet特征
阅读量:7228 次
发布时间:2019-06-29

本文共 3195 字,大约阅读时间需要 10 分钟。

                          上一节中我们演示了在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分组统计

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

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

                         

             

///         /// facet按类型查询        ///         ///         ///         private void button3_Click(object sender, EventArgs e)        {            label3.Visible = true;               var  dic=new Dictionary
>(); dic["facet"] = new string[] { "true" }; var options = new List
(); 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
IDictionary
> 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下载:

 

 

 

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

你可能感兴趣的文章
Python字符编码详解
查看>>
Android开发 Firebase动态链接打开APP
查看>>
基于 HTML5 Canvas 的 3D 模型贴图问题
查看>>
让技术不要成为“背锅侠”!
查看>>
dubbo源码分析系列——dubbo的SPI机制源码分析
查看>>
表格单元格td设置宽度无效的解决办法
查看>>
防止视频资源被下载
查看>>
都是并发惹的祸
查看>>
eclipse实现JavaWeb项目 增量打包
查看>>
面试题系列一之 程序生命周期
查看>>
设计模式——观察者模式:气象监测应用
查看>>
NSUserDefaults简介及如何使用 NSUserDefaults 存储自定义对象
查看>>
IntelliJ IDEA搭建SpringBoot
查看>>
深入浅出iOS事件机制
查看>>
hadoop理解
查看>>
Oracle——18用户、角色和权限信息的视图总结
查看>>
WordPress 中的 Debug 模式(调试模式)
查看>>
node下使用express框架,ejs模板引擎
查看>>
搜索:文本的匹配算法
查看>>
Fedora 17 LibreOffice 办公套件的安装与汉化
查看>>